自己建网站网站视觉
news/
2025/9/26 0:47:01/
文章来源:
自己建网站,网站视觉,网站未备案 打不开,免费建设展示网站Redis 中所有的键的类型都是字符串类型#xff0c;⼀个字符串的最⼤值不能超过 512 MB。 由于 Redis 内部存储字符串完全是按照⼆进制流的形式保存的#xff0c;所以 Redis 是不处理字符集编码问题的#xff0c;客⼾端传⼊的命令中使⽤的是什么字符集编码#xff0c;就存储…Redis 中所有的键的类型都是字符串类型⼀个字符串的最⼤值不能超过 512 MB。 由于 Redis 内部存储字符串完全是按照⼆进制流的形式保存的所以 Redis 是不处理字符集编码问题的客⼾端传⼊的命令中使⽤的是什么字符集编码就存储什么字符集编码。 例如输入你好查询出来的却是\xe4\xbd\xa0\xe5\xa5\xbd
常见命令
set
将 string 类型的 value 设置到 key 中。如果 key 之前存在则覆盖⽆论原来的数据类型是什么。之前关于此 key 的 TTL 也全部失效。 语法 SET key value [expiration EX seconds|PX milliseconds] [NX|XX]返回值
如果设置成功返回 OK。如果由于 SET 指定了 NX 或者 XX 但条件不满⾜SET 不会执⾏并返回 (nil)。 NX ⸺只在 key 不存在时才进⾏设置即如果 key 之前已经存在设置不执⾏。XX ⸺只在 key 存在时才进⾏设置即如果 key 之前不存在设置不执⾏。 127.0.0.1:6379 keys *
1) key1
2) key
127.0.0.1:6379 set key1 1 nx
(nil)
127.0.0.1:6379 set key 1
OKget
获取 key 对应的 value。如果 key 不存在返回 nil。如果 value 的数据类型不是 string会报错。
127.0.0.1:6379 lpush key2 1 2 3 4
(integer) 4
127.0.0.1:6379 get key2
(error) WRONGTYPE Operation against a key holding the wrong kind of value
语法
get key返回值key 对应的 value或者 nil 当 key 不存在。
127.0.0.1:6379 get key
1
127.0.0.1:6379 get key1
1
mset
⼀次性设置多个 key 的值。 语法
MSET key value [key value ...]返回值永远是 OK
127.0.0.1:6379 mset key3 333 key4 444
OK
mget
⼀次性获取多个 key 的值。如果对应的 key 不存在或者对应的数据类型不是 string返回 nil。 语法
MGET key [key ...]返回值对应 value 的列表
127.0.0.1:6379 mget key key1
1) 1
2) 1
使⽤ mget / mset 由于可以有效地减少了⽹络时间所以性能相较更⾼。要注意每次批量操作所发送的键的数量也不是⽆节制的否则可能造成单⼀命令执⾏时间过⻓导致 Redis 阻塞
setnx
setnx 设置 key-value 但只允许在 key 之前不存在的情况下。 语法
setnx key value返回值1 表⽰设置成功。0 表⽰没有设置。
127.0.0.1:6379 setnx key6 666
(integer) 1
incr
将 key 对应的 string 表⽰的数字加⼀。如果 key 不存在则视为 key 对应的 value 是 0。如果 key 对应的 string 不是⼀个整型或者范围超过了 64 位有符号整型则报错。 语法
incr key返回值integer 类型的加完后的数值。
127.0.0.1:6379 incr key
(integer) 2
127.0.0.1:6379 incr key7
(integer) 1
incrby
将 key 对应的 string 表⽰的数字加上对应的值。如果 key 不存在则视为 key 对应的 value 是 0。如果 key 对应的 string 不是⼀个整型或者范围超过了 64 位有符号整型则报错。 语法
INCRBY key decrement返回值integer 类型的加完后的数值。
127.0.0.1:6379 get key3
333
127.0.0.1:6379 incrby key3 333
(integer) 666
decr
将 key 对应的 string 表⽰的数字减⼀。如果 key 不存在则视为 key 对应的 value 是 0。如果 key 对应的 string 不是⼀个整型或者范围超过了 64 位有符号整型则报错。 语法
DECR key返回值integer 类型的减完后的数值。
127.0.0.1:6379 get key
2
127.0.0.1:6379 decr key
(integer) 1
decrby
将 key 对应的 string 表⽰的数字减去对应的值。如果 key 不存在则视为 key 对应的 value 是 0。如果 key 对应的 string 不是⼀个整型或者范围超过了 64 位有符号整型则报错。 语法
DECRBY key decrement返回值integer 类型的减完后的数值。
127.0.0.1:6379 get key3
666
127.0.0.1:6379 decrby key3 333
(integer) 333
incrbyfloat
将 key 对应的 string 表⽰的浮点数加上对应的值。如果对应的值是负数则视为减去对应的值。如果key 不存在则视为 key 对应的 value 是 0。如果 key 对应的不是 string或者不是⼀个浮点数则报错。允许采⽤科学计数法表⽰浮点数。 语法
INCRBYFLOAT key increment返回值加/减完后的数值。
127.0.0.1:6379 set key7 6.5
OK
127.0.0.1:6379 get key7
6.5
127.0.0.1:6379 incrbyfloat key7 0.5
7
127.0.0.1:6379 incrbyfloat key7 -1.5
5.5
append
如果 key 已经存在并且是⼀个 string命令会将 value 追加到原有 string 的后边。如果 key 不存在则效果等同于 SET 命令。 语法 APPEND KEY VALUE返回值追加完成之后 string 的⻓度。
127.0.0.1:6379 set key8 abc
OK
127.0.0.1:6379 append key8 defg
(integer) 7
127.0.0.1:6379 get key8
abcdefg
getrange
返回 key 对应的 string 的⼦串由 start 和 end 确定左闭右闭。可以使⽤负数表⽰倒数。-1 代表倒数第⼀个字符-2 代表倒数第⼆个其他的与此类似。超过范围的偏移量会根据 string 的⻓度调整成正确的值。 语法 GETRANGE key start end返回值string 类型的⼦串
127.0.0.1:6379 get key8
abcdefg
127.0.0.1:6379 getrange key8 0 -1
abcdefg
127.0.0.1:6379 getrange key8 2 4
cde
setrange
覆盖字符串的⼀部分从指定的偏移开始。 语法 SETRANGE key offset value返回值替换后的 string 的⻓度。
127.0.0.1:6379 get key8
abcdefg
127.0.0.1:6379 setrange key8 3 abc
(integer) 7
127.0.0.1:6379 get key8
abcabcgstrlen
获取 key 对应的 string 的⻓度。当 key 存放的类似不是 string 时报错。 语法 STRLEN key返回值string 的⻓度。或者当 key 不存在时返回 0。
127.0.0.1:6379 strlen key8
(integer) 7
小结
命令执行效果时间复杂度set key value [key value…]设置 key 的值是 valueO(k), k 是键个数get key获取 key 的值O(1)del key [key …]删除指定的 keyO(k), k 是键个数mset key value [key value…]批量设置指定的 key 和 valueO(k), k 是键个数mget key [key …]批量获取 key 的值O(k), k 是键个数incr key指定的 key 的值 1O(1)decr key指定的 key 的值 -1O(1)incrby key n指定的 key 的值 nO(1)decrby key n指定的 key 的值 -nO(1)incrbyfloat key n指定的 key 的值 nO(1)append key value指定的 key 的值追加 valueO(1)strlen key获取指定 key 的值的⻓度O(1)setrange key offset value覆盖指定 key 的从 offset 开始的部分值O(n)n 是字符串⻓度, 通常视为 O(1)getrange key start end获取指定 key 的从 start 到 end 的部分值O(n)n 是字符串⻓度, 通常视为 O(1)
内部编码
字符串类型的内部编码有 3 种
int8 个字节的⻓整型。embstr⼩于等于 39 个字节的字符串。raw⼤于 39 个字节的字符串。 Redis 会根据当前值的类型和⻓度动态决定使⽤哪种内部编码实现。
使用场景
缓存Cache功能 Redis 作为缓冲层起到加速读写和降低后端压⼒的作⽤。计数Counter功能 视频的播放量计数点赞计数等共享会话Session redis存储session短信验证码 登录时创建验证码设置失效时间限制用户获取验证码频率等待。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/917735.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!