文章插图
Redis五种数据结构如下:对redis来说,所有的key(键)都是字符串 。
1.String 字符串类型是redis中最基本的数据类型,一个key对应一个value 。
String类型是二进制安全的,意思是 redis 的 string 可以包含任何数据 。如数字,字符串,jpg图片或者序列化的对象 。
使用:get 、 set 、 del 、 incr、 decr 等
127.0.0.1:6379> set hello worldOK127.0.0.1:6379> get hello"world"127.0.0.1:6379> del hello(integer) 1127.0.0.1:6379> get hello(nil)127.0.0.1:6379> get counter"2"127.0.0.1:6379> incr counter(integer) 3127.0.0.1:6379> get counter"3"127.0.0.1:6379> incrby counter 100(integer) 103127.0.0.1:6379> get counter"103"127.0.0.1:6379> decr counter(integer) 102127.0.0.1:6379> get counter"102"实战场景:
1.缓存: 经典使用场景,把常用信息,字符串,图片或者视频等信息放到redis中,redis作为缓存层,mysql做持久化层,降低mysql的读写压力 。
2.计数器:redis是单线程模型,一个命令执行完才会执行下一个,同时数据可以一步落地到其他的数据源 。
3.session:常见方案spring session + redis实现session共享,
2.Hash (哈希)是一个Mapmap,指值本身又是一种键值对结构,如 value=https://www.520longzhigu.com/diannao/{{field1,value1},……fieldN,valueN}}
使用:所有hash的命令都是 h 开头的 hget 、hset 、 hdel 等
127.0.0.1:6379> hset user name1 hao(integer) 1127.0.0.1:6379> hset user email1 hao@163.com(integer) 1127.0.0.1:6379> hgetall user1) "name1"2) "hao"3) "email1"4) "hao@163.com"127.0.0.1:6379> hget user user(nil)127.0.0.1:6379> hget user name1"hao"127.0.0.1:6379> hset user name2 xiaohao(integer) 1127.0.0.1:6379> hset user email2 xiaohao@163.com(integer) 1127.0.0.1:6379> hgetall user1) "name1"2) "hao"3) "email1"4) "hao@163.com"5) "name2"6) "xiaohao"7) "email2"8) "xiaohao@163.com"实战场景:
1.缓存: 能直观,相比string更节省空间,的维护缓存信息,如用户信息,视频信息等 。
3.链表List 说白了就是链表(redis 使用双端链表实现的 List),是有序的,value可以重复,可以通过下标取出对应的value值,左右两边都能进行插入和删除数据 。
使用列表的技巧
lpush+lpop=Stack(栈)lpush+rpop=Queue(队列)lpush+ltrim=Capped Collection(有限集合)lpush+brpop=Message Queue(消息队列)使用:
127.0.0.1:6379> lpush mylist 1 2 ll ls mem(integer) 5127.0.0.1:6379> lrange mylist 0 -11) "mem"2) "ls"3) "ll"4) "2"5) "1"127.0.0.1:6379>实战场景:
1.timeline:例如微博的时间轴,有人发布微博,用lpush加入时间轴,展示新的列表信息 。
4.Set 集合集合类型也是用来保存多个字符串的元素,但和列表不同的是集合中 1. 不允许有重复的元素,2.集合中的元素是无序的,不能通过索引下标获取元素,3.支持集合间的操作,可以取多个集合取交集、并集、差集 。
使用:命令都是以s开头的 sset 、srem、scard、smembers、sismember
127.0.0.1:6379> sadd myset hao hao1 xiaohao hao(integer) 3127.0.0.1:6379> SMEMBERS myset1) "xiaohao"2) "hao1"3) "hao"127.0.0.1:6379> SISMEMBER myset hao(integer) 1实战场景;
1.标签(tag),给用户添加标签,或者用户给消息添加标签,这样有同一标签或者类似标签的可以给推荐关注的事或者关注的人 。
2.点赞,或点踩,收藏等,可以放到set中实现
5.zset 有序集合有序集合和集合有着必然的联系,保留了集合不能有重复成员的特性,区别是,有序集合中的元素是可以排序的,它给每个元素设置一个分数,作为排序的依据 。
(有序集合中的元素不可以重复,但是score 分数 可以重复,就和一个班里的同学学号不能重复,但考试成绩可以相同) 。
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- 详解数据库的索引主要类型 数据库的索引类型有哪些
- 检测水表是否漏水的3种方式 如何看水表是否漏水
- 清理c盘最简单的方法 服务器c盘满了怎么清理
- 免费分享这4种请求方式 jquery发送ajax请求的方法有哪些
- 网络基础知识详细介绍 以太网和局域网的区别
- 蛋白质对人体的重要性 蛋白质是什么
- 一个爱心是什么意思 爱心是什么什么
- 从毛泽东的启蒙运动思想看中华民族
- 校秋季运动会
- 关于召开新世纪学校2011年春季田径运动会的通知