Redis五大数据类型,快来学习吧!
2021/9/21 19:10:09
本文主要是介绍Redis五大数据类型,快来学习吧!,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Redis五大数据类型
Redis支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)
Redis 的命令不区分大小写,但是 key 严格区分大小写!!!
String,字符串(基本)
90%的人就只会使用String类型!这是一种悲哀!
基础
#获取字符串长度 strlen key #追加字符串,如果不存在就自动新建 append key value #检查是否存在 exist key #设置 set key value #得到 get key #先获取旧值,再设置新值,没有旧值就为空(nil) getset key value #删除 del key
浏览量自增
set views 0 #加一 incr views #加特定步长 incrby views 10 #减一 decr views #减特定步长 decyby views 8
字符串截取与替换
set study "Hello,Redis" #字符串截取[0,5] getrange study 0 5 #截取全部的字符串 getrange study 0 -1 #替换后面的字符串,从的七个字符串开始替换 setrange study 6 "I am study Redis"
存在相关设置
#设置存在时间 setex key seconds value #查看存在时间 ttl key #不存在才赋值 setnx key value
批量设置与获取
#批量设置 mset k1 v1 k2 v2 k3 v3 #批量获取 mget k1 k2 k3 #同时他是原子性操作,要么都失败要么都成功! msetnx k1 v k4 v4 >false
同时你可以设置对象
#但其实也没啥特殊的,:也没什么特殊的,只是一种软规定罢了 mset user:1:name zheng user:1:age 21 mget user:1:name zheng user:1:age 21
用途
- 计数器
- 统计多单位的数量:uid:123666:follow 0
- 粉丝数
- 对象存储缓存
List,有序可重复集合
在Redis里面我们可以把list玩成 栈,队列,阻塞队列
有序可重复
list的数据结构:https://cloud.tencent.com/developer/article/1710612
List是Redis自己实现的双向链表,可以两个方向进行添加访问
除了上面这两种指令之外
查看节点(查)
#查看所有节点 lrange mylist 0 -1 #查看指定节点 lrange mylist 0 2 #查看指定下标的节点 lindex mylist 1 #查看总长度 llen mylist
移除(删)
lrem key count value #lrem mylist 1 one #从前往后移除一个mylist中的one元素
截取
ltrim mylist 1 2
移动旧元素到新List
rpoplpush oldlist newlist
更新(改)
lset mylist 0 newnode #把原先的0位置的元素变为新的元素,如果原下标没有元素就会报错
插入(增)
#在mylist中的one元素前面插入zero这个元素 linsert mylist before one zero #在mylist中的one元素后面插入two这个元素 linsert mylist after one two
用途
- 消息排队
- 消息队列
- 栈
Set,无序不重复集合
无序不重复
基础操作
#添加 sadd myset hello sadd myset world sadd myset redis #查看全部,但他是无序的 smembers myset #查看是否存在 sismember myset java >0没有 1有 #获取个数 scard myset #移除,myset中的hello元素 srem myset hello
随机
#随机获取,可加个数 srandmember myset (count) #随机删除,可加个数 spop myset (count)
移动
#移动hello元素从oldset到newset smove oldset newset hello
集(例如:共同关注)
#差集 sdiff set1 set2 #交集 sinter set1 set2 #并集 sunion set1 set2
用途
- 共同关注
Hash,散列
Map集合
其本质就是在String的基础上套了一层
hget hset hmset hmget hsetex hsetnx hexist ……这些方法hash基本上都有
#查看所有 hgetall myhash #查看所有key hkeys myhash #查看所有的value hvals myhash
用途:
- 存储对象(比string更具有优势)
Zsets,有序不重复集合
就是在set的基础上增加了score,方便排序
#添加 zadd salary 2500 zheng zadd salary 3000 liao zadd salary 5000 huang #删除 zrem salary yuan #查看 zrange salary 0 1 #查看第一个到第二个的元素 zrevrange salary 0 1 #查看倒序后的第一个到第二个元素 #通过score来排序,可以是否带有score这个参数,key用 -inf +inf 查看 zrangebyscore salary 0 3000 (withscores) #查看score在[0,3000]范围的元素 ##通过score倒序来排序,可以是否带有score这个参数,key用 +inf -inf 查看 zrevrangebyscore salary 0 3000 #查看个数 zcard salary #获得指定score区间的个数 count salary 0 3000 > 2
用途:
- 成绩表,工资表
- 权重
- 排行榜 Top N
这篇关于Redis五大数据类型,快来学习吧!的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24Redis资料:新手入门快速指南
- 2024-12-24Redis资料:新手入门教程与实践指南
- 2024-12-24Redis资料:新手入门教程与实践指南
- 2024-12-07Redis高并发入门详解
- 2024-12-07Redis缓存入门:新手必读指南
- 2024-12-07Redis缓存入门:新手必读教程
- 2024-12-07Redis入门:新手必备的简单教程
- 2024-12-07Redis入门:新手必读的简单教程
- 2024-12-06Redis入门教程:从安装到基本操作
- 2024-12-06Redis缓存入门教程:轻松掌握缓存技巧