(基本知识)Redis 字符串(String)相关函数
1.SET:用于设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型
127.0.0.1:6379> set a 852 OK 127.0.0.1:6379> get a "852" 127.0.0.1:6379> set a 741 OK 127.0.0.1:6379> get a "741" 127.0.0.1:6379>
2.Get :用于获取指定 key 的值。key 不存在返回 nil 。如果key 储存的值不是字符串类型,返回一个错误
127.0.0.1:6379> get a "741" 127.0.0.1:6379> get ss (nil) 127.0.0.1:6379>
3.Getrange :用于获取存储在指定 key 中字符串的子字符串。返回截取得到的子字符串。
start:子字符串开始位置,包括 start
end:子字符串结束位置,包括 end
127.0.0.1:6379> set a "tom is a cat" OK 127.0.0.1:6379> getrange a 3 5 " is" 127.0.0.1:6379> getrange a 0 3 "tom " 127.0.0.1:6379> getrange a 7 -1 "a cat" 127.0.0.1:6379>
4.Getset :用于设置指定 key 的值,并返回 key 的旧值
key 无旧值时返回 nil
key 存在但不是字符串类型时返回一个错误
127.0.0.1:6379> getset fis 7415 #此时fis已经设置了值 (nil) 127.0.0.1:6379> get fis "7415" 127.0.0.1:6379> getset fis 951753 "7415" 127.0.0.1:6379> get fis "951753" 127.0.0.1:6379>
5.Mget :返回所有给定的一个或多个key 的值。 如果给定的 key 里面某个 key 不存在,那么这个 key 返回特殊值 nil
返回所有给定 key 的值的列表
127.0.0.1:6379> mget a asd aed tg 1) "tom is a cat" 2) "789" 3) "123" 4) (nil) 127.0.0.1:6379>
6.Setex :为指定的 key 设置值及其过期时间(以秒为单位)。如果 key 已经存在, SETEX 命令将会替换旧的值 设置成功返回ok
127.0.0.1:6379> setex er 60 a OK 127.0.0.1:6379> ttl er (integer) 56 127.0.0.1:6379> ttl er (integer) 51 127.0.0.1:6379>
7.Setnx:在指定的 key 不存在时,为 key 设置指定的值,存在key设置返回0 成功返回1 失败返回0
127.0.0.1:6379> exists opq (integer) 0 127.0.0.1:6379> setnx opq 888 (integer) 1 127.0.0.1:6379> setnx opq 999 (integer) 0 127.0.0.1:6379> get opq "888" 127.0.0.1:6379>
8.Setrange :用指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始。返回被修改后的字符串长度
127.0.0.1:6379> set a "hello tom" OK 127.0.0.1:6379> setrange a 6 world (integer) 11 127.0.0.1:6379> get a "hello world" 127.0.0.1:6379>
9.Strlen 命令用于获取指定 key 所储存的字符串值的长度
返回字符串值的长度
当 key 不存在时,返回 0
当 key 储存的不是字符串值时,返回一个错误
127.0.0.1:6379> strlen a (integer) 11 127.0.0.1:6379> strlen okm (integer) 0 127.0.0.1:6379>
10.Mset :用于同时设置一个或多个 key-value 对 返回 OK
127.0.0.1:6379> mset a1 123 a2 456 a3 789 OK 127.0.0.1:6379> get a1 "123" 127.0.0.1:6379> get a2 "456" 127.0.0.1:6379> get a3 "789" 127.0.0.1:6379>
11.Msetnx :当所有给定 key 都不存在时,同时设置一个或多个 key-value 对
如果其中有一个key存在 多个设置失败返回0
成功返回1
127.0.0.1:6379> msetnx q1 456 q2 789 q3 951 (integer) 1 127.0.0.1:6379> mget q1 q2 q3 1) "456" 2) "789" 3) "951" 127.0.0.1:6379> msetnx q1 741 q4 951 (integer) 0 127.0.0.1:6379> get q1 "456" 127.0.0.1:6379> get q4 (nil) 127.0.0.1:6379>
12.Psetex :以毫秒为单位设置 key 的生存时间 成功时返回 OK
127.0.0.1:6379> psetex a 147895 ppp OK 127.0.0.1:6379> pttl a (integer) 139837 127.0.0.1:6379> pttl a (integer) 137313 127.0.0.1:6379> pttl a (integer) 136016 127.0.0.1:6379>
13.Incr 命令将 key 中储存的数字值加1
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误
127.0.0.1:6379> incr wsx (integer) 1 127.0.0.1:6379> get wsx "1" 127.0.0.1:6379> incr wsx (integer) 2 127.0.0.1:6379> incr wsx (integer) 3 127.0.0.1:6379> set d 50 OK 127.0.0.1:6379> incr d (integer) 51 127.0.0.1:6379> incr d (integer) 52 127.0.0.1:6379> incr d (integer) 53 127.0.0.1:6379>
14.Incrby 命令将 key 中储存的数字加上指定的增量值
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCRBY 命令。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
127.0.0.1:6379> exists zx (integer) 0 127.0.0.1:6379> incrby zx 30 (integer) 30 127.0.0.1:6379> get zx "30" 127.0.0.1:6379> incrby zx 20 (integer) 50 127.0.0.1:6379> get zx "50" 127.0.0.1:6379> set y 'ppp' OK 127.0.0.1:6379> get y "ppp" 127.0.0.1:6379> incrby y 20 (error) ERR value is not an integer or out of range 127.0.0.1:6379>
15.Incrbyfloat :为 key 中所储存的值加上指定的浮点数增量值
如果 key 不存在,那么 INCRBYFLOAT 会先将 key 的值设为 0 ,再执行加法操作
127.0.0.1:6379> set a 5 OK 127.0.0.1:6379> incrbyfloat a 1.1 "6.1" 127.0.0.1:6379> INCRBYFLOAT a 1.000000000000 "7.1" 127.0.0.1:6379>
16.Decr :将 key 中储存的数字值减1
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
127.0.0.1:6379> get a "7.1" 127.0.0.1:6379> decr a (error) ERR value is not an integer or out of range 127.0.0.1:6379> set a 55 OK 127.0.0.1:6379> decr a (integer) 54 127.0.0.1:6379> decr a (integer) 53 127.0.0.1:6379>
17.Decrby :将 key 所储存的值减去指定的减量值
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECRBY 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
127.0.0.1:6379> get a "53" 127.0.0.1:6379> decrby a 30 (integer) 23 127.0.0.1:6379> decrby a 10 (integer) 13 127.0.0.1:6379>
18.Append 命令用于为指定的 key 追加值
如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。
如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样
127.0.0.1:6379> exists yhn (integer) 0 127.0.0.1:6379> append yhn 852 (integer) 3 127.0.0.1:6379> append yhn 999 (integer) 6 127.0.0.1:6379> get yhn "852999" 127.0.0.1:6379>