redis常用的五种数据类型
redis常用的五种数据类型
文档
- redis单机安装
- redis数据类型-位图bitmap
说明
- 官网操作命令指南页面:https://redis.io/docs/latest/commands/?name=get&group=string
常用命令
keys *
:查看所有键exists k1 k2
:键存在个数type k1
:键k1对应值的数据类型del k1
:删除键k1unlink k1
:非阻塞删除ttl k1
:k1的过期时间expire k1 10
:给k1设置过期时间,10sselect 1
:切换到数据库1move k1 1
:将k1移动到数据库1dbsize
:查看当前库键的数量flushdb
:清空当前库flushall
:清空全部库help @string
:查看string类型的操作命令
redis常用的五种数据类型
1. 字符串:String
基本命令
set k1 hello nx
:键k1不存在时设置成功set k1 hello xx
:键k1存在时设置(更新)成功set k1 hello get
:键k1设置新值,并返回上次设置的值set k1 hello ex 10
:键k1设置值,并设置过期时间,10sset k1 hello px 10000
:键k1设置值,并设置过期时间,10000毫秒set k1 hello exat 1745055900
:键k1设置值,并设置到期时间,unix时间戳,秒值set k1 hello keepttl
:键k1设置值,并保持当前的过期时间
批量命令
mset k1 hello k2 world
:批量设置,键k1、k2分别设置值mget k1 k2
:批量获取值,键k1、k2分别获取值msetnx k1 hi k3 nihao
:批量设置,键都不存在时设置成功,保证原子性
范围操作
getrange k1 0 3
:获取k1值下标[0,3]部分的字符串,左闭右闭getrange k1 0 -2
:获取k1值下标0到-2部分的字符串,-2表示倒数第2个,-1表示最后1个setrange k1 1 aabb
:设置k1的值,从原来的值下标为1的字符开始,对应下标的值替换为aabb
数值操作
incr k1
:键k1的值自增1,键k1的值要保证是数字incrby k1 2
:键k1的值自增2decr k1
:键k1的值自减1decrby k1 2
:键k1的值自减2
其它操作
strlen k1
:获取键k1的值占用的子节数append k1 aabb
:字符串追加getset k1 hello
:键k1设置新值,并返回上次设置的值,与set k1 hello get
相同
其它说明
SETEX
、SETNX
、PSETEX
命令可能会在未来版本中淘汰
2. 列表:List
基本命令
lpush list1 1 2 3
:从队列左边加入依次加入元素,新元素在队列头部rpush list1 1 2 3
:从队列右边加入依次加入元素,新元素在队列尾部lrange list1 0 -1
:从队列左边到右边,也就是队列头部到尾部的顺序,依次获取元素lpop list1
:从队列左边,也就是头部,弹出一个元素rpop list1
:从队列右边,也就是尾部,弹出一个元素lindex list1 0
:获取下标为0的元素,队列头部到尾部的顺序llen list1
:获取列表元素个数lrem list1 3 1
:从队列左边到右边,也就是队列头部到尾部的顺序,删除3个值为1的元素ltrim list1 2 5
:从队列左边到右边顺序,截取下标2-5的元素,左闭右闭,作为list1新的值rpoplpush list1 list2
:弹出list1尾部的元素,加入到list2的头部lset list1 1 5
:下标为1的元素,重新赋值为5linsert list1 before 1 0
:值为1的元素前面,添加新元素0linsert list1 after 1 2
:值为1的元素后面,添加新元素2
3. 哈希表:Hash
基本命令
hset hashmap1 id 1 name zhangsan
:向hashmap1中加入id、name属性并赋值hmset hashmap1 id 1 name zhangsan
:向hashmap1中加入id、name属性并赋值,与hset
相同hget hashmap1 id
:获取hashmap1中,id属性的值hmget hashmap1 id name
:获取hashmap1中,id、name属性的值hgetall hashmap1
:获取hashmap1中,所有的属性及值hdel hashmap1 id
:删除hashmap1中,id属性hlen hashmap1
:获取hashmap1属性的个数hexists hashmap1 id
:判断hashmap1中,是否存在id属性hkeys hashmap1
:获取hashmap1中,所有的属性hvals hashmap1
:获取hashmap1中,所有属性的值hsetnx hashmap1 age3 20
:不存在hashmap1,或hashmap1中不存在age3属性,设置成功
数值操作
hincrby hashmap1 age 2
:hashmap1中age属性的值自增2,age属性的值要保证是数字hincrbyfloat hashmap1 score 0.5
:hashmap1中score属性的值自增0.5
4. 集合:Set
基本命令
sadd set1 1 1 2 3
:添加元素,自动去重smembers set1
:获取set1的所有元素sismember set1 3
:判断元素3是否在set1中srem set1 1 2
:删除set1中元素1、元素2scard set1
:获取元素个数srandmember set1 2
:随机获取2个元素spop set1 2
:随机弹出2个元素,删除smove set1 set2 3
:元素3从set1中弹出,添加到set2中,无该元素则不执行
集合运算
sdiff set1 set2
:查询属于set1,但不属于set2的元素,差集,set1 - set2
sunion set1 set2
:查询属于set1或set2的元素,并集,set1 ∪ set2
sinter set1 set2
:查询属于set1,并且属于set2的元素,交集,set1 ∩ set2
sintercard 2 set1 set2 limit 10
:查询2个集合中,交集元素的个数,最多查询10个
5. 有序集合:ZSet
基本命令
zadd zset1 20 zhangsan 30 lisi 40 wangwu 20 maliu 25 wangwu
:添加元素,根据值去重,取后面设置的分数zrange zset1 0 -1
:获取zset1的所有元素,分数从小到大zrange zset1 0 -1 withscores
:获取zset1的所有元素及分数,分数从小到大zrevrange zset1 0 -1
:获取zset1的所有元素,分数从大到小zrange zset1 20 25 byscore
:获取分数在20到25之间的元素,左闭右闭,与zrangebyscore zset1 20 25
相同zrange zset1 20 25 byscore limit 1 2
:获取分数在20到25之间的元素,左闭右闭,下标是1开始,取2个zrange zset1 20 25 byscore withscores
:获取分数在20到25之间的元素及分数,左闭右闭zrange zset1 (20 25 byscore
:获取分数在20到25之间的元素,不包括20,左开右闭zscore zset1 zhangsan
:获取元素分数zcard zset1
:获取元素个数zrem zset1 zhangsan lisi
:删除zet1中元素zhangsan、元素lisizincrby zset1 20 wangwu
:给wangwu的分数增加20zcount zset1 20 30
:获取分数在20到25之间的元素个数zmpop 2 zset1 zset2 min count 2
:找到第一个非空有序集合,弹出该集合中分数最小的2个元素zrank zset1 wangwu
:获取wangwu在zset1的下标,下标从0开始zrevrank zset1 wangwu
:获取wangwu在zset1中,倒序的下标,下标从0开始
redis其它数据类型
- 地理空间:GEO
- 基数统计:HyperLogLog
- 位图:bitmap
- 位域:bitfield
- 流:Stream
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2340126.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!