redis_2_key_五大数据类型常用命令

一、key

1、查看当前库的key个数:dbsize—需要注意的是这个返回来的个数包含过期key。

这里写图片描述

2、查看当前库的所有key :keys *

这里写图片描述

3、模糊查询1 :keys XX?—表示XX后面只要带一个的都会被匹配,无论这一个是什么,但是必须只能是一个。

这里写图片描述

4、模糊查询2 :keys XX*—表示匹配XX后面所有的,无论有多少个还是没有。

这里写图片描述

5、判断当前库是否含有这个key :existis key—有就返回1,没有就返回0。

这里写图片描述

6、设置过期时间 :expire key 时间(单位:秒)—设置成功就返回1,失败就返回0。可以看到一分钟后,time这个key已经失效了,查出来是null

这里写图片描述

这里写图片描述

7、查看key还有多少时间过期:ttl key—返回值的单位为秒,返回-1表示永久有效,-2表示过期,如果过期,key和value都不存在了,get key返回的将会是null,keys *中也不会有key这个key值

这里写图片描述

8、查看key的value是什么类型的:type key

这里写图片描述

9、删除某个key:del key

这里写图片描述

10、替换某个key的value:第二次赋值就回覆盖第一次赋的值。

这里写图片描述

11、迁移key:move key 目标数据库下标—将当前库中的key迁移到1库中,结果当前库中该key已经消失,1库中多个一个key。如果1库中已经有key这个key值的话,就转移失败,返回0。

这里写图片描述

二、string

1、set-赋值

2、get-获取值

3、del-删除值

4、字符串拼接:append key 123:表示将key中的值拼接上123,返回的是key的值的长度,如果key原本就存在,那也不会报错,就相当于建了一个key,值为123,返回的长度则为3

这里写图片描述

5、获取value的长度:strlen key :返回的是key对应value的长度,如果不存在就返回0。

这里写图片描述

6、value加一:incr key :表示将key中的值加1。如果key的值不是数字,则会报错:”ERR value is not an integer or out of range”。

这里写图片描述

8、value加任意值:incrby key 要加的数字 :表示将key中的值加某个值。后面和加1同理。

9、value减一:decr key :表示将key中的值减1。后面和加1同理。

10、value减任意值:decrby key 要加的数字 :表示将key中的值减某个值。后面和加1同理。

11、获取指定返回之内的值:getrange key 起始下标 终止坐标:表示返回下标从起始坐标开始到终止坐标,如果终止超过了key值的长度-1,不会报错,返回的是开始坐标到key长度-1。类似于between,,and。。的关系,类似于java中的substring方法。

这里写图片描述

12、设定指定返回之内的值:setrange key 起始下标 值。

这里写图片描述

注意1:假如这个key的值是null,那给他的下标为1的地方赋值会怎样???

这里写图片描述

注意2:假如这个key的值的长度为4,那给他的下标为3的地方赋值会怎样???

这里写图片描述

13、设置key的缓存时间:setex key 过期时间(单位:秒) 值。

这里写图片描述

这里写图片描述

14、setnx key sss:如果key中有值,则返回0,如果key中没有值,则将sss赋值给key,并返回1。

这里写图片描述

15、连续赋值-获取值:mset k1 v1 k2 v2—表示一下对两个key赋值

这里写图片描述

16、msetnx:对应给定的keys到他们相应的values上。只要有一个key已经存在,msetnx一个操作都不会执行。 由于这种特性,msetnx可以实现要么所有的操作都成功,要么一个都不执行,这样可以用来设置不同的key,来表示一个唯一的对象的不同字段。如果所有的key被set返回1,如果没有key被set(至少其中有一个key是存在的)返回0。

这里写图片描述

三、list:单key多value

1、左入栈:

这里写图片描述

2、右入栈:

这里写图片描述

3、遍历list集合的value值:注意没有rrange这个命令

这里写图片描述

可以按照下图理解:

这里写图片描述

4、左侧出栈:出栈每次只能是一个

这里写图片描述

5、右侧出栈:出栈每次只能是一个

这里写图片描述

小结:左入栈,后进先出;右入栈,先进先出

6、按下标取值:lindex key 下标

注意:注意:redis中的下标是从0开始的,但是可视化工具中显示开始的是1而已,lindex list01 1:即取下标为1的值,3在可视化工具中是第2个,但是下标还是1

这里写图片描述

7、获取list集合的长度:llen key —如果key不存在,则返回0

这里写图片描述

8、删除多少个指定元素:lrem key 删除元素的个数 删除的元素

这里写图片描述

思考:到底删的是几个2呢?—实验证明,删除的应该是从左侧开始删的

这里写图片描述

思考:那么如果这个list中没有那个多个要删除的值会怎么样???—实现证明:只把有的那个1删了。

这里写图片描述

思考:那么如果要删除的那个元素不存在会怎么样???—结果:一个也没删除,返回0

这里写图片描述

9、集合元素截取:ltrim key 起始坐标 终止坐标—表示将key的value从起始坐标截取到终止坐标后的值赋值给key

这里写图片描述

10、集合之间赋值:将list05中的右侧头元素放在list01左侧头元素中

这里写图片描述

思考:假如:list05中一个元素都没有会怎么样???

这里写图片描述

11、给指定下标赋值(这个和String类型差不多):lset key 下标 值

这里写图片描述

思考:如果这个list01中什么都没有,直接给下标为1的赋值会怎么样???

这里写图片描述

12、在value之前之后插入新的值:linsert key before 值1 值2 —表示在key中的值1之前插入值2

这里写图片描述

思考:如果没有这个值1怎么办???—实验证明没有插进去,然后返回给我们-1。

这里写图片描述

注意:after和before效果一样

list总结:
1、list他是一个字符链表。left和right都可以插入添加
2、如果key不存在就新建链表
3、如果key存在,新增内容
4、如果key中的value全部移除,则key也消失了
5、链表的操作无论是头部还是尾部效率都很高,但是对中间元素操作,效率就低

四、hash:kv模式不变,但是v是一个键值对

1、赋值:hset KEY key value—返回存进去的个数

2、取值:hget KEY key—返回value值(hget KEY:没有这个命令)

这里写图片描述

3、一个KEY赋值多个key-value:hmset KEY k1 v1 k2 v2—存进去则返回ok,注意原来这个KEY里面已经有key-value的可以接着赋值,如果对原来的key再次赋值,原来的将会被覆盖。

4、获取一个KEY的多个key的value值:hmget KEY k1 k2

这里写图片描述

5、删除一个KEY的key的值:hdel KEY k1 —注意,没有hdel KEY 这个命令

这里写图片描述

6、获取KEY的所有key- value:hgetall KEY

这里写图片描述

7、获取KEY的key- value个数:hlen KEY

这里写图片描述

8、判断KEY中是否含有key:hexists KEY key —存在就是1 不存在就是0

这里写图片描述

9、获取KEY中的所有key:hkeys KEY

10、获取KEY中的所有value:hvals KEY

这里写图片描述

11、将KEY中的key的value加上一个数:hincrby KEY key 要加的值 —注意,这是对整数的,小数用:hincrbyfloat

这里写图片描述

12、不覆盖的赋值:hsetnx KEY key value—有则不覆盖,并且返回0,没有则赋值,并且返回1。

这里写图片描述

五、set:单值多value

1、赋值(增加值):sadd key value

2、遍历:smembers key

3、判断成员元素是否是集合的成员:sismember key value—是就返回1,不是就返回0。

这里写图片描述

4、删除某个元素:srem key value—删除key中的某个value,如富value存在,就删除,然后返回1,不存在就返回0。

这里写图片描述

5、随机取几个元素:srandmember key 个数

这里写图片描述

6、元素出栈:spop key —随机出栈,就是指不定出来的是哪一个,这个和list不同。

这里写图片描述
这里写图片描述

6、值转移:smove key1 key2 value1 —将key1中的value1值给key2,key1将失去value1。

这里写图片描述

7、并集:sunion key1 key2 —返回key1和key2的并集。

这里写图片描述

8、交集:sinter key1 key2 —返回key1和key2的交集。

这里写图片描述

9、差集:sdiff key1 key2 key3 —返回的是key1中有,key2和key3中都没有的元素。

这里写图片描述

六、zset:sorted set—相当于在原来set的基础上加一个score值

之前:set是k1 v1 k2 v2

现在:set是k1 score v1 k2 score v2—相当于键值对的形式存在,但是是一个整体。

1、赋值:zadd key 键值对1 键值对2 键值对3 键值对4

2、获取所有的value(不带score):zrange key 0 -1

3、获取所有的value(带score):zrange key 0 -1 withscores—-注意:withscores有s,value在前,score在后。

这里写图片描述

4、获取score从多少到多少的value:zrangebyscore key 开始的score 结束的score。

这里写图片描述

思考:现在里面只有60到90的数据,那么为我score从50开始会输出什么呢???

这里写图片描述

5、获取score从多少到多少的value,右侧不取—相当于数学里面的开集合,不是闭集合:zrangebyscore key 开始的score ( 结束的score

这里写图片描述

6、limit的使用:zrangebyscore key 开始的score 结束的score limit 开始下标 取多少个—再次强调,取出来的东西下标是从0开始的,只是redis可视化工具显示的是1。 这里的limit类似于mysql中的分页。

这里写图片描述

7、删除:zrem key value值—表示删除key中的value并删除对应的score。注意是value。

这里写图片描述
这里写图片描述

8、获取元素个数:zcard key —返回key中的元素个数。

这里写图片描述

9、获取两个score之间的value值:zcount key —返回key中的元素个数。

这里写图片描述

10、获取value对应的下标值:zrank key value—返回key中value的下标。

11、获取value对应的score值:zscore key value—返回key中value的score。

12、逆序获取value对应的下标值:zrevrank key value—返回key中value的逆序下标。原来的顺序逆序后再取元素的下标

13、逆序遍历集合:zrevrange key 0 -1

这里写图片描述

14、根据score范围逆序取值:zrevrangebyscore key 结束score 开始score

这里写图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值