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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345