3.Redis Getrange 命令
Redis Getrange 命令用于获取存储在指定 key 中字符串的子字符串。字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内)。
redis Getrange 命令基本语法如下:
redis 127.0.0.1:6379> GETRANGE KEY_NAME start end
例子
redis 127.0.0.1:6379> SET mykey “This is my test key”
OK
redis 127.0.0.1:6379> getrange mykey 0 3
“This”
redis 127.0.0.1:6379> getrange mykey 0 -1
“This is my test key”
4.Redis Getset 命令
Redis Getset 命令用于设置指定 key 的值,并返回 key 旧的值。
redis Getset 命令基本语法如下:
redis 127.0.0.1:6379> GETSET KEY_NAME VALUE
127.0.0.1:6379> get mykey
“This is my test key”
127.0.0.1:6379> getset mykey “lala”
“This is my test key”
127.0.0.1:6379> get mykey
“lala”
5.Redis Getbit 命令
Redis Getbit 命令用于对 key 所储存的字符串值,获取指定偏移量上的位(bit)。
redis Getbit 命令基本语法如下:
redis 127.0.0.1:6379> GETBIT KEY_NAME OFFSET
字符串值指定偏移量上的位(bit)。
当偏移量 OFFSET 比字符串值的长度大,或者 key 不存在时,返回 0 。
例子:
对不存在的 key 或者不存在的 offset 进行 GETBIT, 返回 0
redis> EXISTS bit
(integer) 0
redis> GETBIT bit 10086
(integer) 0
对已存在的 offset 进行 GETBIT
redis> SETBIT bit 10086 1
(integer) 0
redis> GETBIT bit 10086
(integer) 1
6.Redis Mget 命令
Redis Mget 命令返回所有(一个或多个)给定 key 的值。 如果给定的 key 里面,有某个 key 不存在,那么这个 key 返回特殊值 nil 。
redis Mget 命令基本语法如下:
redis 127.0.0.1:6379> MGET KEY1 KEY2 .. KEYN
127.0.0.1:6379> set key1 “hello”
OK
127.0.0.1:6379> set key2 “world”
OK
127.0.0.1:6379> mget key1 key2
1) “hello”
2) “world”
127.0.0.1:6379> MGET key1 key2 someOtherKey
1) “hello”
2) “world”
3) (nil)
7.Redis Setbit 命令
Redis Setbit 命令用于对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)。
redis Setbit 命令基本语法如下:
redis 127.0.0.1:6379> Setbit KEY_NAME OFFSET
指定偏移量原来储存的位。
redis> SETBIT bit 10086 1
(integer) 0
redis> GETBIT bit 10086
(integer) 1
redis> GETBIT bit 100 # bit 默认被初始化为 0
(integer) 0
8.Redis Setex 命令
Redis Setex 命令为指定的 key 设置值及其过期时间。如果 key 已经存在, SETEX 命令将会替换旧的值。
redis Setex 命令基本语法如下:
redis 127.0.0.1:6379> SETEX KEY_NAME TIMEOUT VALUE
redis 127.0.0.1:6379> SETEX mykey 60 redis
OK
redis 127.0.0.1:6379> TTL mykey
60
redis 127.0.0.1:6379> GET mykey
“redis
9.Redis Setnx 命令
Redis Setnx(SET if Not eXists) 命令在指定的 key 不存在时,为 key 设置指定的值。
redis Setnx 命令基本语法如下:
redis 127.0.0.1:6379> SETNX KEY_NAME VALUE
例子:
redis 127.0.0.1:6379>stnx job “programmer” # job 不存在
10.Redis Setrange 命令
Redis Setrange 命令用指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始。
返回被修改后的字符串长度。
例子:
redis 127.0.0.1:6379> SET key1 “Hello World”
OK
redis 127.0.0.1:6379> SETRANGE key1 6 “Redis”
(integer) 11
redis 127.0.0.1:6379> GET key1
“Hello Redis”
11.Redis Strlen 命令
Redis Strlen 命令用于获取指定 key 所储存的字符串值的长度。当 key 储存的不是字符串值时,返回一个错误。
redis Strlen 命令基本语法如下:
redis 127.0.0.1:6379> STRLEN KEY_NAME
返回值
字符串值的长度。 当 key 不存在时,返回 0。
例子:
获取字符串的长度
redis> SET mykey “Hello world”
OK
redis> STRLEN mykey
(integer) 11
不存在的 key 长度为 0
redis> STRLEN nonexisting
(integer) 0
12.Redis Mset 命令
Redis Mset 命令用于同时设置一个或多个 key-value 对。
redis Mset 命令基本语法如下:
redis 127.0.0.1:6379> MSET key1 value1 key2 value2 .. keyN valueN
总是返回 OK 。
127.0.0.1:6379> mset key1 “hello” key2 “world”
OK
13.Redis Msetnx 命令
redis Msetnx 命令基本语法如下:
redis 127.0.0.1:6379> MSETNX key1 value1 key2 value2 .. keyN valueN
对不存在的 key 进行 MSETNX
redis> MSETNX rmdbs “MySQL” nosql “MongoDB” key-value-store “redis”
(integer) 1
redis> MGET rmdbs nosql key-value-store
1) “MySQL”
2) “MongoDB”
3) “redis”
MSET 的给定 key 当中有已存在的 key
redis> MSETNX rmdbs “Sqlite” language “python” # rmdbs 键已经存在,操作失败
(integer) 0
redis> EXISTS language # 因为 MSET 是原子性操作,language 没有被设置
(integer) 0
redis> GET rmdbs # rmdbs 也没有被修改
“MySQL”
14.Redis Psetex 命令
Redis Psetex 命令以毫秒为单位设置 key 的生存时间。
redis Psetex 命令基本语法如下:
redis 127.0.0.1:6379> PSETEX key1 EXPIRY_IN_MILLISECONDS value1
设置成功时返回 OK 。
例子:
redis 127.0.0.1:6379> PSETEX mykey 1000 “Hello”
OK
redis 127.0.0.1:6379> PTTL mykey
999
redis 127.0.0.1:6379> GET mykey
1) “Hello”
15.Redis Incr 命令
Redis Incr 命令将 key 中储存的数字值增一。
redis Incr 命令基本语法如下:
redis 127.0.0.1:6379> INCR KEY_NAME
执行 INCR 命令之后 key 的值。
例子:
redis> SET page_view 20
OK
redis> INCR page_view
(integer) 21
redis> GET page_view # 数字值在 Redis 中以字符串的形式保存
“21”
16.Redis Incrby 命令
Redis Incrby 命令将 key 中储存的数字加上指定的增量值。
加上指定的增量值之后, key 的值。
key 不存在时
redis> EXISTS counter
(integer) 0
redis> INCRBY counter 30
(integer) 30
redis> GET counter
“30”
17.Redis Incrbyfloat 命令
Redis Incrbyfloat 命令为 key 中所储存的值加上指定的浮点数增量值。
如果 key 不存在,那么 INCRBYFLOAT 会先将 key 的值设为 0 ,再执行加法操作。
redis Incrbyfloat 命令基本语法如下:
redis 127.0.0.1:6379> INCRBYFLOAT KEY_NAME INCR_AMOUNT
返回执行命令之后 key 的值。
例子:
值和增量都不是指数符号
redis> SET mykey 10.50
OK
redis> INCRBYFLOAT mykey 0.1
“10.6”
值和增量都是指数符号
redis> SET mykey 314e-2
OK
redis> GET mykey # 用 SET 设置的值可以是指数符号
“314e-2”
redis> INCRBYFLOAT mykey 0 # 但执行 INCRBYFLOAT 之后格式会被改成非指数符号
“3.14”
可以对整数类型执行
redis> SET mykey 3
OK
redis> INCRBYFLOAT mykey 1.1
“4.1”
后跟的 0 会被移除
redis> SET mykey 3.0
OK
redis> GET mykey # SET 设置的值小数部分可以是 0
“3.0”
redis> INCRBYFLOAT mykey 1.000000000000000000000 # 但 INCRBYFLOAT 会将无用的 0 忽略掉,有需要的话,将浮点变为整数
“4”
redis> GET mykey
“4”
18.Redis Decr 命令
Redis Decr 命令将 key 中储存的数字值减一。
如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。
如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。
本操作的值限制在 64 位(bit)有符号数字表示之内。
redis Decr 命令基本语法如下:
redis 127.0.0.1:6379> DECR KEY_NAME
返回执行命令之后 key 的值。
19.Redis Decrby 命令
Redis Decrby 命令将 key 所储存的值减去指定的减量
值。
redis Decrby 命令基本语法如下:
redis 127.0.0.1:6379> DECRBY KEY_NAME DECREMENT_AMOUNT
返回减去指定减量值之后, key 的值。
20.Redis Append 命令
Redis Append 命令用于为指定的 key 追加值。
如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。
如果 key 不存在, APPEND 就简单地将给定 key 设为 value ,就像执行 SET key value 一样。