Redis常用五大数据类型
2019-08-16 09:52:14来源:博客园 阅读 ()
Redis常用五大数据类型
五大数据类型常用的命令(此处只介绍常用命令更多命令请参考https://www.redis.net.cn/tutorial/3505.html):
Key(键):
keys * 查看当前库全部key名称。
exists key 判断某个key是否存在。存在返回1,不存在返回0。
move key db 把当前库某个key移到指定库。
expire key second 为指定的key设置过期时间,单位为秒。
ttl key 查看指定key还有多少秒过期,-1表示永不过期,-2表示已过期(如果过期该key会被移出库)。
type key 查看你的key是什么数据类型。
del [key...] 删除指定key,可同时删除多个。
1.string(字符串):
string类型是redis最基本的数据类型,redis中一个字符串value最多可以是512M。
string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象。
set 设置一个key-value。
get 获取一个key的value。
del 删除一个或多个key-value。
append 对指定key的value追加值。
strlen 获取指定key的value的长度。
incr 对指定key的value每次加1。 一定要是数字才能进行加减。
decr 对指定key的value每次减1。 一定要是数字才能进行加减。
incrby 对指定key的value每次加n(数量可指定)。 一定要是数字才能进行加减。
decrby 对指定key的value每次减n(数量可指定)。 一定要是数字才能进行加减。
getrange 获取指定key的value的指定区间范围内的值,类似于java的substring。
setrange 设置指定key的value的指定区间范围内的值,原区间范围的值会被覆盖。
setex(set with expire) 设置一个key-value并指定该key的过期时间(秒)。
setnx(set if not exist) 设置一个key-value,如果该key存在则不设置,如果不存在则设置。
mset 设置一个或多个key-value。
msetnx 设置一个或多个key-value,如果key都不存在则设置,如果其中有一个key存在则不设置。
mget 获取一个或多个key的value。
getset 获取一个key(key必须存在)并设置该key的值,返回原来的值。
2.hash(哈希,类似java里的Map):
redis hash 是一个键值对集合。redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
类似Java里面的Map<String,Object>。KV模式不变,但V是一个键值对。
hset 添加一个hash集合并往里面添加一对KV。
hget 获取hash集合某个Key的数据。
hmset 添加一个hash集合并往里面添加N对KV。
hmget 获取hash集合N个Key的数据。
hgetall 获取hash集合全部的KV数据。
hdel 移除hash集合中的N个Key。
hlen 获取hash集合中Key的数量。
hexists 判断hash集合中某个Key是否存在。
hkeys 获取hash集合全部Key。
hvals 获取hash集合全部Value。
hincreby 给hash集合中的某个key加N。 一定要是数字才能加,加整数。
hincrebyfloat 给hash集合中的某个key加N。 一定要是数字才能加,加整数或小数。
hsetnx 添加一个hash集合并往里面添加一对KV(如果key不存在则添加,存在则不添加)。
3.list(列表):
redis list 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。它的底层实际是个链表。
说明:l(left)、r(right),将结构理解为栈,l表示栈顶、r栈底。
lpush 添加一个list列表,将一个或多个值插入到列表头部,先进后出。
rpush 添加一个list列表,将一个或多个值插入到列表尾部,先进先出。
lrange 获取list列表指定区间范围内的值。
lpop 移除list列表顶部元素(第一个元素),并返回被移除的元素。
rpop 移除list列表底部元素(最后一个元素),并返回被移除的元素。
lindex 按照顶部索引下标获得元素。
llen 获取list列表的长度。
lrem 移除list列表N个value。(lrem key count value)。
ltrim 截取list列表指定范围内的值后再赋值给list列表(原值将被截取值覆盖)。
rpoplpush 将指定列表的底部元素移到目标列表的顶部。
lset 设置列表指定下标的值。
linsert 在指定列表的某个元素前面或后面添加元素。(linsert key before/after 列表中的元素 添加的元素)。
list列表总结:
它是一个字符串链表,left、right都可以添加。
如果键不存在,创建新的链表。
如果键已存在,新增内容。
如果值全移除,对应的键也就消失了。
链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就比较低了。
4.set(集合):
redis set是string类型的无序集合。它是通过HashTable实现的。
sadd 将一个或多个成员插入到set集合中。
smembers 遍历set集合。
sismember 判断指定元素是否是set集合的成员。
scard 获取set集合中元素的个数。
srem 移除set集合中N个元素。
srandmember 随机获取set集合中N个元素。
spop 随机移除set集合中N个元素并返回被移除的元素。
smove 将指定集合中的某个元素移到目标集合中。
sdiff 集合的减集。
sinter 集合的交集。
sunion 集合的并集。
5.zset(sorted set:有序集合):
redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。
redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。
zadd 将一个或多个成员插入到zset集合中。(zadd key 分数 值...)例如:[zadd zset1 80 zhangsan]。
zrange 获取zset集合指定区间范围内的值(zrange key start stop [withscores])。加withscores可查看分数与值
zrangebyscore 获取zset集合指定分数范围内的值(zrangebyscore key [(]min [(]max [limit offset count]),“(”表示不包含。
zrem 移除zset集合中N个元素。
zcard 获取zset集合中元素的个数(不包含分数,分数和元素是一体的)。
zcount 获取zset集合指定分数范围内的个数。
zrank 获取zset集合某个元素的下标。
zscore 获取zset集合某个元素对应的分数。
zrevrank 逆序获取zset集合某个元素的下标。
zrevrange 逆序获取zset集合指定区间范围内的值。
zrevrangebyscore 逆序获取zset集合指定分数范围内的值。
原文链接:https://www.cnblogs.com/lazy-blog/p/11141597.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:第一个Spring Demo
- redis缓存 2020-06-12
- Spring Boot 2.3.0 新特性Redis 拓扑动态感应 2020-06-11
- 作为一个面试官,我想问问你Redis分布式锁怎么搞? 2020-06-10
- Java 必须掌握的 12 种 Spring 常用注解! 2020-06-08
- 分布式锁没那么难,手把手教你实现 Redis 分布锁!|保姆级教 2020-06-08
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash