redis命令大集锦

  • 命令分类

0.配置相关

1 redis> config get *max-*-entries*   
1) "hash-max-zipmap-entries"
2) "512"
3) "list-max-ziplist-entries"
4) "512"
5) "set-max-intset-entries"
6) "512"
获取正在运行的redis实例配置的选项
2 redis> config set save 900 1
暂时性的更新更在运行的redis实例
3. CONFIG REWRITE
作用:通过尽可能少的修改, 将服务器当前所使用的配置记录到 redis.conf 文件中。
原有 redis.conf 文件的整体结构和注释会被尽可能地保留。
1)如果一个选项已经存在于原有 redis.conf 文件中 , 那么对该选项的重写会在选项原本所在的位置(行号)上进行。
2)如果一个选项不存在于原有 redis.conf 文件中, 并且该选项被设置为默认值, 那么重写程序不会将这个选项添加到重写后的 redis.conf 文件中。
3)如果一个选项不存在于原有 redis.conf 文件中, 并且该选项被设置为非默认值, 那么这个选项将被添加到重写后的 redis.conf 文件的末尾。
4)未使用的行会被留白。 比如说, 如果你在原有 redis.conf 文件上设置了数个关于 save 选项的参数, 但现在你将这些 save 参数的一个或全部都关闭了, 那么这些不再使用的参数原本所在的行就会变成空白的。
5)即使启动服务器时所指定的 redis.conf 文件已经不再存在, CONFIG REWRITE 命令也可以重新构建并生成出一个新的redis.conf 文件。
6)另一方面, 如果启动服务器时没有载入 redis.conf 文件, 那么执行 CONFIG REWRITE 命令将引发一个错误

1.redis keys 命令:

1 DEL key
该命令用于在 key 存在时删除 key。
2 DUMP key
序列化给定 key ,并返回被序列化的值。
3 EXISTS key
检查给定 key 是否存在。
4 EXPIRE key seconds
为给定 key 设置过期时间,以秒计。
5 EXPIREAT key timestamp
EXPIREAT 的作用和 EXPIRE 类似,都用于为 key 设置过期时间。不同在于 EXPIREAT 命
令接受的时间参数是 UNIX 时间戳(unix timestamp)6 PEXPIRE key milliseconds
设置 key 的过期时间以毫秒计。
7 PEXPIREAT key milliseconds-timestamp
设置 key 过期时间的时间戳(unix timestamp) 以毫秒计
8 KEYS pattern
查找所有符合给定模式( pattern)的 key 。 
9 MOVE key db
将当前数据库的 key 移动到给定的数据库 db 当中。
10 PERSIST key
移除 key 的过期时间,key 将持久保持。
11 PTTL key
以毫秒为单位返回 key 的剩余的过期时间。
12 TTL key
以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)13 RANDOMKEY
从当前数据库中随机返回一个 key 。
14 RENAME key newkey
修改 key 的名称
15 RENAMENX key newkey
仅当 newkey 不存在时,将 key 改名为 newkey 。
16 TYPE key
返回 key 所储存的值的类型

2.redis 字符串string命令

1 SET key value [NX|XX]				O(1)
设置指定 key 的值
NX:SET命令只会在键没有值的情况下执行设置操作,并返回OK表示设置成功;如果键已经存在,那么SET命令将放弃执行设置操作,并返回空值nil表示设置失败。
XX:那么SET命令只会在键已经有值的情况下执行设置操作,并返回OK表示设置成功;如果给定的键并没有值,那么SET命令将放弃执行设置操作,并返回空值表示设置失败。
2 GET key							O(1)
获取指定 key 的值。
3 GETRANGE key start end			O(N),其中N为被返回内容的长度
返回 key 中字符串值的子字符
4 GETSET key value					O(1)
将给定 key 的值设为 value ,并返回 key 的旧值(old value)5 GETBIT key offset
对 key 所储存的字符串值,获取指定偏移量上的位(bit)6 MGET key1 [key2..]				O(N),其中N为用户给定的字符串键数量
获取所有(一个或多个)给定 key 的值。
7 SETBIT key offset value
对 key 所储存的字符串值,设置或清除指定偏移量上的位(bit)8 SETEX key seconds value
将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)9 SETNX key value
只有在 key 不存在时设置 key 的值。
10 SETRANGE key offset value		O(N),其中N为被修改内容的长度。
用 value 参数覆写给定 key 所储存的字符串值,从偏移量 offset 开始。
11 STRLEN key						O(1),因为底层是sds动态字符串,会存储一个键值对中,值的长度,直接取出来就行
返回 key 所储存的字符串值的长度。
12 MSET key value [key value ...]	O(N),其中N为用户给定的字符串键数量
同时设置一个或多个 key-value 对。
13 MSETNX key value [key value ...]	O(N),其中N为用户给定的字符串键数量
只在键不存在的情况下,一次为多个字符串键设置值
(MSETNX与MSET的区别:MSETNX与MSET的主要区别在于,MSETNX只会在所有给定键都不存在的情况下对键进行设置,而不会像MSET那样直接覆盖键已有的值)
14 PSETEX key milliseconds value
这个命令和 SETEX 命令相似,但它以毫秒为单位设置 key 的生存时间,而不是像 SETEX 
命令那样,以秒为单位。

//补充:当INCRBY命令或DECRBY命令遇到不存在的键时,命令会先将键的值初始化为0,然后再执行相应的加法操作或减法操作
15 INCR key							O(1)
将 key 中储存的数字值增一。
16 INCRBY key increment				O(1)
将 key 所储存的值加上给定的增量值(increment)。
17 INCRBYFLOAT key increment		O(1)	
将 key 所储存的值加上给定的浮点增量值(increment)。
//INCRBYFLOAT命令在遇到不存在的键时,会先将键的值初始化为0,然后再执行相应的加法操作。
18 DECR key
将 key 中储存的数字值减一。
19 DECRBY key decrement
key 所储存的值减去给定的减量值(decrement) 。
20 APPEND key value					O(N),其中N为新追加内容的长度
如果 key 已经存在并且是一个字符串,APPEND 命令将指定的 value 追加到该 key 原
来值(value)的末尾。
(如果用户给定的键并不存在,那么APPEND命令会先将键的值初始化为空字符串"",然后再执行追加操作,最终效果与使用SET命令为键设置值的情况类似)

3.redis hash命令

1 HDEL key field1 [field2]			O(1)
删除一个或多个哈希表字段
2 HEXISTS key field
查看哈希表 key 中,指定的字段是否存在。
3 HGET key field					O(1)
获取存储在哈希表中指定字段的值。
4 HGETALL key						O(N)
获取在哈希表中指定 key 的所有字段和值
5 HINCRBY key field increment		O(1)	
为哈希表 key 中的指定字段的整数值加上增量 increment 。 
6 HINCRBYFLOAT key field increment	O(1)
为哈希表 key 中的指定字段的浮点数值加上增量 increment 。 
7 HKEYS key							O(N)
获取所有哈希表中的字段
8 HLEN key							O(1)
获取哈希表中字段的数量
9 HMGET key field1 [field2]			O(N),其中N为用户给定的字段数量	
获取所有给定字段的值
10 HMSET key field1 value1 [field2 value2 ]		O(N),其中N为被设置的字段数量
同时将多个 field-value (-)对设置到哈希表 key 中。
11 HSET key field value				O(1)
将哈希表 key 中的字段 field 的值设为 value 。
12 HSETNX key field value			O(1)
只有在字段 field 不存在时,设置哈希表字段的值。
13 HVALS key						O(N)
获取哈希表中所有值
14 HSCAN key cursor [MATCH pattern] [COUNT count]
迭代哈希表中的键值对。
15 HSTRLEN hash field				O(1)
用户可以使用HSTRLEN命令获取给定字段值的字节长度
16.HEXISTS hash field				O(1)
可用于检查用户给定的字段是否存在于散列当中,返回1表示包含该字段,返回0表示不包含该字段

4.redis list命令

1 BLPOP key1 [key2 ] timeout				O(N),其中N为用户给定的列表数量
移出并获取列表的第一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可
弹出元素为止。
2 BRPOP key1 [key2 ] timeout				O(N),其中N为用户给定的列表数量
移出并获取列表的最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现
可弹出元素为止。
3 BRPOPLPUSH source destination timeout		O(1)
从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有
元素会阻塞列表直到等待超时或发现可弹出元素为止。
//令是RPOPLPUSH命令的阻塞版本,BRPOPLPUSH命令接受一个源列表、一个目标列表以及一个秒级精度的超时时限作为参数:
4 LINDEX key index							O(N),其中N为给定列表的长度
通过索引获取列表中的元素(用类似数组下标访问value值)						
1)它的正数索引必然大于等于0,并且小于等于N-12)它的负数索引必然小于等于-1,并且大于等于-N。
5 LINSERT key BEFORE|AFTER pivot value		O(N),其中N为给定列表的长度
在列表指定元素的前或者后插入元素
6 LLEN key									O(1)
获取列表长度
7 LPOP key
移出并获取列表的第一个元素
8 LPUSH key value1 [value2]					O(N),其中N为被推入列表的元素数量
将一个或多个值插入到列表头部
9 LPUSHX key value							O(1)				
将一个值插入到已存在的列表头部,
//当用户调用LPUSH命令或RPUSH命令尝试将元素推入列表的时候,如果给定的列表并不存在,那么命令将自动创建一个空列表,并将元素推入刚刚创建的列表中
10 LRANGE key start stop					O(N),其中N为给定列表的长度
获取列表指定范围内的元素
11 LREM key count value
移除列表元素
如果count参数的值等于0,那么LREM命令将移除列表中包含的所有指定元素
如果count参数的值大于0,那么LREM命令将从列表的左端开始向右进行检查,并移除最先发现的count个指定元素
如果count参数的值小于0,那么LREM命令将从列表的右端开始向左进行检查,并移除最先发现的abs(count)个指定元素(abs(count)即count的绝对值)
12 LSET key index value
通过索引设置列表元素的值
13 LTRIM key start stop						O(N),其中N为给定列表的长度
对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间
之内的元素都将被删除。
14 RPOP key
移除列表的最后一个元素,返回值为移除的元素。
15 RPOPLPUSH source destination
移除列表的最后一个元素,并将该元素添加到另一个列表并返回
16 RPUSH key value1 [value2]				O(N),其中N为被推入列表的元素数量
在列表中添加一个或多个值
17 RPUSHX key value							O(1)
为已存在的列表添加值

5.redis set命令

1 SADD key member1 [member2]			O(N),其中N为用户给定的元素数量
向集合添加一个或多个成员
2 SCARD key								O(1)
获取集合的成员数
3 SDIFF key1 [key2]						O(N),其中N为所有给定集合包含的元素数量总和。
返回给定所有集合的差集
4 SDIFFSTORE destination key1 [key2]	O(N),其中N为所有给定集合包含的元素数量总和。
返回给定所有集合的差集并存储在 destination 中 5 SINTER key1 [key2]
返回给定所有集合的交集
6 SINTERSTORE destination key1 [key2]	O(N*M)--SINTER命令和SINTERSTORE命令的复杂度都是O(N*M),其中N为给定集合的数量,而M则是所有给定集合当中,包含元素最少的那个集合的大小
返回给定所有集合的交集并存储在 destination 中 7 SISMEMBER key member
判断 member 元素是否是集合 key 的成员
8 SMEMBERS key							O(N),其中N为集合包含的元素数量
返回集合中key对应的所有元素
9 SMOVE source destination member		O(1)
将 member 元素从 source 集合移动到 destination 集合
10 SPOP key	[count]						O(N),其中N为被移除的元素数量
移除并返回集合中的count个随机元素,默认是1个,只接受正数count值	
11 SRANDMEMBER key [count]				O(N),其中N为被返回的元素数量
返回集合中一个或多个随机数
//count参数,用于指定用户想要获取的元素数量,如果用户没有给定这个参数,那么SRANDMEMBER命令默认只获取一个元素
1)如果count参数的值为正数,那么SRANDMEMBER命令将返回count个不重复的元素
2)如果count参数的值为负数,那么SRANDMEMBER命令将随机返回abs(count)个元素(abs(count)也即是count的绝对值),并且在这些元素当中允许出现重复的元素
12 SREM key member1 [member2]			O(N),其中N为用户给定的元素数量
移除集合中一个或多个成员
13 SUNION key1 [key2]					O(N),其中N为所有给定集合包含的元素数量总和
返回所有给定集合的并集
14 SUNIONSTORE destination key1 [key2]	O(N),其中N为所有给定集合包含的元素数量总和。
所有给定集合的并集存储在 destination 集合中
15 SSCAN key cursor [MATCH pattern] [COUNT count]
迭代集合中的元素
16 SISMEMBER set element				O(1)
可以检查给定的元素是否存在于集合当中
17 SINTER set [set ...]					O(N*M),其中N为给定集合的数量,而M则是所有给定集合当中,包含元素最少的那个集合的大小
可以计算出用户给定的所有集合的交集,然后返回这个交集包含的所有元素:

6.sorted set命令

1 ZADD key [XX|NX] score1 member1 [score2 member2]		O(M*log(N)),其中M为给定成员的数量,而N则为有序集合包含的成员数量。
向有序集合添加一个或多个成员,或者更新已存在成员的分数
XX:只会对有序集合已有的成员进行更新,而不会向有序集合添加任何新成员。
NX:只会把给定成员当中不存在于有序集合的成员添加到有序集合里面
2 ZCARD key												O(1)
获取有序集合的成员数
3 ZCOUNT key min max
计算在有序集合中指定区间分数的成员数
举例:zcount salary -inf (5000  查看工资高于5K的
注意:使用+inf表示无穷大分值,使用-inf表示无穷小分值,或者使用单括号(定义开区间分值范围。
4 ZINCRBY key increment member							O(log (N)),其中N为有序集合包含的成员数量。
有序集合中对指定成员的分数加上增量 increment
//如果用户在执行ZINCRBY命令时,给定成员并不存在于有序集合中,或者给定的有序集合并不存在,那么ZINCRBY命令将直接把给定的成员添加到有序集合中,并把给定的增量设置为该成员的分值,效果相当于执行ZADD命令
5 ZINTERSTORE destination numkeys key [key ...]			O(N*log(N)*M),其中N为所有给定有序集合中,基数最小的那个有序集合的基数,而M则是给定有序集合的数量。
计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中
6 ZLEXCOUNT key min max									O(log (N)),其中N为有序集合包含的成员数量
在有序集合中计算指定字典区间内成员数量
7 ZRANGE key start stop [WITHSCORES]					O(log (N) + M),其中N为有序集合包含的成员数量,而M则为命令返回的成员数量。			
升序:通过索引区间返回有序集合成指定区间内的成员
1)WITHSCORES 可显示分值
2)还可以接受负数索引,ZRANGE salary -3-1 升序排列方式获取salary有序集合的最后三个成员
8 ZRANGEBYLEX key min max [LIMIT offset count] 
通过字典区间返回有序集合的成员(min和max表示范围加号+表示无穷大,减号-表示无穷小)
# [a,max :如果我们想要获取words有序集合中所有以字母"a"开头的成员,那么只需要将min参数的值设置为[a , max参数的值设置为(b即可:
# - (c :如果我们想要获取words有序集合中所有字典序小于字母"c"的成员,那么只需要将min参数的值设置为-, max参数的值设置为(c即可:
9 ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT]		
以升序排列:通过分数返回有序集合指定区间内的成员
1)WITHSCORES:获取成员和值
10 ZRANK key member										O(log (N)),其中N为有序集合包含的成员数量。
升序:返回有序集合中指定成员的索引
11 ZREM key member [member ...]							O(M*log(N)),其中M为给定成员的数量,N为有序集合包含的成员数量
移除有序集合中的一个或多个成员
12 ZREMRANGEBYLEX key min max							O(log (N) + M),其中N为有序集合包含的成员数量,M为被移除成员的数量。
移除有序集合中给定的字典区间的所有成员
13 ZREMRANGEBYRANK key start stop						O(log (N) + M),其中N为有序集合包含的成员数量,M为被移除的成员数量。
移除有序集合中给定的排名区间的所有成员
14 ZREMRANGEBYSCORE key min max
移除有序集合中给定的分数区间的所有成员
15 ZREVRANGE key start stop [WITHSCORES]				O(log (N) + M),其中N为有序集合包含的成员数量,而M则为命令返回的成员数量。
降序:返回有序集中指定区间内的成员,通过索引,分数从高到底
16 ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]
降序: 返回有序集中指定分数区间内的成员,分数从高到低排序
1)WITHSCORES选项来同时获取成员及其分值
2)LIMIT限制返回成员个数,offset设置偏移量
17 ZREVRANK key member									O(log (N)),其中N为有序集合包含的成员数量。
降序:返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序
18 ZSCORE key member									O(1)
返回有序集中,成员的分数值
19 ZUNIONSTORE destination numkeys key [key ...]		O(N*log(N)),其中N为所有给定有序集合中,基数最小的那个有序集合的基数,而M则是给定有序集合的数量。
计算给定的一个或多个有序集的并集,并存储在新的 key 中
# 指定聚合函数 ZUNIONSTORE destination numkeys key [key ...] [AGGREGATE SUM|MIN|MAX]
# 计算权重(元素有3个,分别是wss1\wss2\wss3)
zunionstore weighted-result 3 wssl wss2 wss3 WEIGHTS 3 5 1  //那么wss1有序集合成员"a"的分值2将被乘以3,变为6; wss2有序集合成员"b"的分值4则会被乘以5,变为20;wss3有序集合成员的分值3则会保持不变;通过进行并集计算,命令最终将得出图6-32所示的结果有序集合weighted-result。
# 使用集合作为输入(alphabets集合:"a","b","c";another-alphabets有序集合:2-"c",5-"d",7-"e")
zunion store mixed 2 alphabets anotheralphabets //mixed: 1-"a",1-"b",3-"c",5-"d",7-"e"
20 ZSCAN key cursor [MATCH pattern] [COUNT count]		
迭代有序集合中的元素(包括元素成员和元素分值)
21 ZREVRANGEBYLEX sorted_set max min
逆序版的ZRANGEBYLEX命令,它会以逆字典序的方式返回指定范围内的成员 
22 ZPOPMAX sorted_set [count] 							O(N),其中N为命令移除的元素数量
移除并返回有序集合中分值最大的N个元素
23 ZPOPMIN sorted_set [count]							O(N),其中N为命令移除的元素数量
移除并返回有序集合中分值最小的N个元素
24 BZPOPMAX	sorted_set [sorted_set ...] timeout			O(N),其中N为用户给定的有序集合数量
阻塞式最大元素弹出操作,这么多的集合弹出一个元素
25 BZPOPMIN	sorted_set [sorted_set ...] timeout			O(N),其中N为用户给定的有序集合数量
阻塞式最小元素弹出操作,这么多的集合弹出一个元素
  • ZUNIONSTORE destination numkeys key [key …] [AGGREGATE SUM|MIN|MAX]

min获得最小值value,max用做并集计算,获得最大的value在这里插入图片描述

7.HyperLogLog

8.位图

9.地理坐标

1)增加地理信息

geoadd key longtitude  latitude member [longtitude latitude member]
经度  维度 成员

//举例
geoadd citieds:locations  116.28  39.55  beijing
  • 返回值:

(插入一个)之前没有则返回1,之前有则返回0

2)获取地理位置信息

geopos key member [member  ...]

//举例
geopos  cities:locations  tianjin

3)获取两个地理位置的距离

geodist key member1  member2 [unit]

unit表示返回结果的单位:
m表示米
km表示公里
mi表示英里
ft代表尺

4)获取指定范围内的地理信息位置集合

georadius key  longtitude latitude  radium|km|ft|mi   [withcoord]  [withdist]  [withhash]  [COUNT count]  [asc|desc]  [store  key]   [storedist  key]

georadiusbymember  key member   radiusm|km|ft|mi  [withcoord]   [withdist]   [withhash]   [COUNT count]  [asc|desc]  [store  key]   [storedist  key]
  • 命令的作用:

以一个地理位置为中心,算出指定半径内其他地理位置的信息

  • 两个命令不同点:

georadius命令需要给出具体经纬度,georadiusbymember只需要给出成员就行

  • 参数
    withcoord 返回结果中包含经纬度
    withdist 返回结果中包含离中心节点位置的距离
    withhash返回结果中包含geohash
    COUNT count 指定返回结果的数量
    asc|des 返回结果按照离中心节点的距离做升序或降序
    store key 将返回结果的地理位置信息保存到指定键
    storeddis key 将返回结果离中心节点的距离保存到指定键

  • 案例举例

georadiusbymember cities:locations beijing 150 km

5)获取geohash

geohash将二维经纬度转换为一维字符串

geohash cities:locations  beijing

6)删除地理位置信息

zrem ky member  
  • 补充:

geo没有提供删除成员的命令,但是因为GEO的底层实现是zset,所以可以借用zrem命令实现对地理位置信息的删除

10.流

11.数据库命令

12.自动过期

13.流水线与事务

14.Lua脚本

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值