(基本知识)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>

相关推荐