Redis常用命令

数据库命令

查看键的类型
TYPE key 

注: 返回键的类型
HyperLogLog类型返回string,HyperLogLog底层实现是二进制值,字符串类型可以储存二进制值,HyperLogLog直接只用字符串类型存储

获取键命令

1.随机获取某个键

RANDOMKEY 

注:在当前数据库中随机返回一个键,返回的键不会被删除

2.返回数据库中与给定模式匹配的键
KEYS * 数据库中所有键
KEYS h?llo 匹配hello hallo hillo等
KEYS h*llo 匹配hello hllo hiillo等
KEYS h[ae]llo 匹配hello hallo

3.渐进遍历整个数据库与给定模式的键
注:SCAN 命令以渐进的方式遍历整个数据库

SCAN cursor [MATCH pattern][COUNT number]

注: cursor 参数是遍历使用的游标第一次遍历是零,每次遍历会返回游标下次遍历使用
MATCH pattern 选项用户指定匹配模式
COUNT number 选项用于指定一次遍历返回都少键

删除键
DEL key [key...]

删除给定任意多个键,不存在的键会被忽略

检查键是否存在
EXISTS key

注:检查键是否存在,存在返回1,不存在返回0

修改键名
RENAME key newkey 

注:将key改为newkey 如果已存在覆盖,返回ok

RENAMENX key newkey 

注:newkey不存在将key改为newkey 如果已存在不做操作

SORT命令
SORT key

注:将键包含的值解释为浮点数,然后对这些值进行排序

SORT key ASC // 升序 默认参数可省略
SORT key DESC // 降序 
SORT key ALPHA // ALPHA 参数基于字典序对文字进行排序
获取数据库的大小
DBSIZE

注:查找当前数据库的key的数量

切换数据库
SELECT num

注:redis默认创建0-15号数据库,默认使用0号数据库,可以使用命令切换数据库

在数据库键移动键
MOVE key target-db 

注:将key移动到目标数据库中

键设置过期时间
expire key second

注:为给定key设置过期时间,单位为秒

移除键的过期时间
persist key

注:移除key的过期时间,key将持久保存

查看键剩余生存时间
ttl key

注:以秒为单位,返回给定key的剩余生存时间(TTL , time to live)

String数据类型

  • 结构:Key-Value
  • Value:可以是字符串、数字,也可以是二进制数组
  • 限制:Value最大值为512MB
1.get key

注:获取指定key的值

2.set key value

注:设置指定key的值

3.incr key

注:将key中存储的数字值增一

4.incrby key increment

注:将key所存储的数字值加上给定的增量

5.decr key

注:将key中存储的数字值减一

6.decrby key decrement

注:将key所存储的数字值减去给定的减量

7.setnx key value

注:只有当key不存在时才设置key的值

8.set key value nx

注:与⑦相同,只有当key不存在时才设置key的值

9.setex key second value

注:设置指定key的值,同时设置该key的过期时间,单位为秒

10.set key second value ex

注:与⑨相同,设置指定key的值,同时设置该key的过期时间,单位为秒

11.set key value xx

注:只有key存在时才设置key的值

12.mget key1 [key2...]

注:获取所有(一个或多个)指定key的值

13.mset key1 value1 [key2 value2...]

注:同时设置一个或多个key-value对

14.getset key value

注:将给定key的值设置为value,并返回key的旧值

15.append key value

注:将value追加到旧值的末尾

16.strlen key

注:返回key所存储的字符串值的长度

  • 当key不存在时,返回0
  • 一个中文占2个字节
  • 时间复杂度为O(1),strlen在redis内部不需要查询整个字符串来得到长度
17.incrbyfloat key increment

注:将key所存储的值加上给定的浮点值

18.getrange key start end

注:返回key中字符串区间为[start,end]的子串,索引从0开始

19.setrange key offset value

注:用value擦书覆盖指定key所存储的字符串值,从偏移量offset开始,索引从0开始

  • key = content的时候,执行setrange key 1 haha 之后,key=chahant

Hash数据类型

1.hget key field

注:获取存储在哈希表中指定field的值

2.hset key field value

注:将哈希表中指定field的值设置为value

3.hdel key field1 [field2...]

注:删除哈希表中一个或多个field

4.hexists key field

注:判断哈希表中,指定field是否存在

5.hlen key

注:获取哈希表中字段的数量

6.hmget key field1 [field2...]

注:获取哈希表中所有给定field的值

7.hmset key field1 value1 [field2 value2...]

注:同时将一个或多个field-value对设置到哈希表中

8.hincrby key fiel increment

注:为哈希表中指定field的值加上一个整型增量

9.hgetall key
  • 含义:获取哈希表中所有字段和值
  • 时间复杂度为O(n),不建议使用
10.hkeys key

注:获取哈希表中的所有字段

  • 时间复杂度为O(n),不建议使用
11.hvals key

注:获取哈希表中的所有值

  • 时间复杂度为O(n),不建议使用
12.hsetnx key field value

注:只有当哈希表中field不存在时,才设置该field的值

13.hincrbyfloat key field increment

注:为哈希表中指定field的值加上一个浮点数增量

List数据类型

  • 列表:有序、可以有重复元素
1.rpush key value1 [value2...]

注:在列表后侧添加一个或多个值

2.lpush key value1 [value2...]

注:在列表左侧添加一个或多个值

3.linsert key before/after value newValue

注:在列表指定的value前/后插入newValue,时间复杂度为O(n)

4.lpop key

注:从列表左侧弹出一个值

5.rpop key

注:从列表右侧弹出一个值

6.lrem key count value

注:根据count值,从列表中删除值为value的项,时间复杂度为O(n)

  • count > 0 时,从左往右遍历,删除最多count个与value相等的值
  • count < 0 时,从右往左遍历,删除最多Math.abs(count)个与value相等的值
  • count = 0 时,删除所有与value相等的值
7.ltrim key start end

注:对一个列表进行修剪,只保留指定区间内的元素,不在区间内的元素都将被删除,时间复杂度为O(n)

8.lrange key start end

注:获取列表指定索引范围的所有元素,时间复杂度为O(n)

9.lindex key index

注:获取列表指定索引的元素,时间复杂度为O(n)

10.llen key

注:获取列表长度,时间复杂度为O(1)

11.lset key index newValue

注:设置列表指定索引的值为newValue,时间复杂度为O(n)

  • 注意:
    • 必须存在这个值才能设置成功,否则会报错
12.blpop key timeout

注:移除并获取列表左边第一个元素,如果列表没有元素会阻塞直到等待超时或可弹出元素为止

  • timeout单位为秒,timeout=0时不阻塞
13.brpop key timeout

注:移除并获取列表右边第一个元素,如果列表没有元素会阻塞直到等待超时或可弹出元素为止

  • timeout单位为秒,timeout=0时不阻塞

Set数据类型

  • 集合:无序、不能包含重复元素
1.sadd key memebr1 [member2...]

注:向集合中添加一个或多个成员

2.srem key member1 [member2...]

注:从集合中删除一个或多个成员

3.scard key

注:获取集合中的元素个数

4.sismember key member

注:判断member元素是不是集合的成员

5.srandmember key count

注:随机从集合中取出count个成员

6.spop key

注:随机移除并返回集合中的一个成员

7.smembers key

注:获取集合中的所有成员

  • 时间复杂度为O(n),不建议使用,类似的操作可以使用SSCAN
8.sdiff key1 [key2...]

注:返回给定所有集合的差集

9.sdiffstore destKey key1 [key2...]

注:计算给定所有集合的差集,并存入destKey

10.sinter key1 [key2...]

注:返回给定所有集合的交集

11.sinterstore destKey key1 [key2...]

注:计算给定所有集合的交集,并存入destKey

12.sunion key1 [key2...]

注:返回给定所有集合的并集

13.sunionstore destKey key1 [key2...]

注:计算给定所有集合的并集,并存入destKey

ZSet数据类型

  • 有序集合:有序、不能包含重复元素
  • 每个节点包含:score和value两个属性,根据score进行排序
1.zadd key score1 member1 [score2 member2...]

注:向有序集合添加一个或多个成员,或者更新已存在成员的分数

2.zrem key member1 [member2...]

注:从有序集合中删除一个或多个成员

3.zscore key member

注:获取有序集合中成员的分数

4.zincrby key increment member

注:对有序集合中指定成员的分数加上增量increment

5.zcard key

注:返回有序集合中元素的总个数

6.zrange key start end [withscores]

注:通过索引返回有序集合中指定区间的成员信息

  • withscores 参数,加上代表一并将score数据返回
7.zrangebyscore key min max [withscores][limit]

注:通过score返回有序集合中指定分数区间的成员信息

  • withscores 参数,加上代表一并将score数据返回
  • limit参数,加上代表限制返回多少条数据
8.zscore key min max

注:返回有序集合中指定分数范围内的元素个数

9.zremrangebyscore key min max

注:删除有序集合中指定分数区间的所有成员

10.zremrangebyrank key start end

注:删除有序集合中给定索引区间的所有成员

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容