一、Redis数据结构的使用场景
我读过的书和redisbook已经熟悉Redis的基本
功能,从Redis的源代码的最后一周。目的是了解Redis数据结构。我们都知道,有5种在redis数据结构,什么是每一个数据结构的使用场景
字符串,字符串
哈希词典
列表清单
集集
排序集序集
让我们简要描述一下它们各自的使用场景:
1。字符串,字符串
字符串数据结构是一种简单的键值
类型。值可以是字符串或数字。当编码表示的长,编码是整数,其余的是存储在sdshdr作为字符串。使用字符串类型,可以充分实现当前缓存功能和更有效。你也可以欣赏redis持久的时间(你可以选择关系数据库
模式或多种模式)、日志和
复制操作功能。除了提供缓存好,
设置,增加,减少,和其他操作,Redis还提供了以下一些操作:
复制代码代码如下所示:
1.len niushuai:O(1)获取字符串的长度
2.append niushuai redis:字符串追加内容,记忆和使用
智能分配(2次)
三.设置并获取字符串的某一部分。
4。设置并获得一点字符串(位)
5。批量设置一系列字符串
6。atomic counter
使用7.getset
命令,请清空旧值设置一个新值,随着原子计数器的使用
2。哈希词典
在缓存中,我们常常用一些结构化的信息到HashMap。在客户端的序列化,它存储为一个字符串值(通常为JSON格式),如
用户的昵称,年龄,性别,积分等等。在这个时候,当我们需要
修改的项目之一,我们通常需要提取字符串(JSON),然后将它修改一项的值,然后将其序列化为一个字符串(JSON)来存储它。仅仅修改一个
属性做了这么多事情会消耗很多,不适用于某些场合,可以
并行操作(例如,两个并发操作需要修改积分)。Redis的哈希结构允许您修改只有一个属性值,如数据库中更新属性。
复制代码代码如下所示:
存储、读取和修改用户属性
三.列表清单
单说这是列表(Redis的使用双链表链表),和那些
学习数据结构知识的人应该能够理解其结构,链表结构,我们可以很容易地实现最新
消息排名(如新浪微博的时间表),列表中的另一个应用是消息队列。可以使用列表的推送操作把
任务列表,然后辅助
线程以流行手术取出并
执行任务。redis也提供了一个API,操作列表中的某一段,你可以直接
查询和
删除列表中的元素的一部分。
复制代码代码如下所示:
1。微博的时间线
2。消息队列
4。集集
集是一个集合,集合的概念就是一堆非重复值。使用集数据结构提供的redis,一些综合数据可以存储。例如,在微博客
应用程序,收集用户的所有用户可以在设定的存在,和所有的球迷有一个收集。因为Redis是非常人性化的提供的交集和并集减法操作,就可实现的共同关注和共同的喜好,双学位的朋友非常方便,所有的设置操作,你也可以使用命令来选择不同的结果将返回给客户端或设置存款一套新的。
1。朋友,两个朋友
2。使用唯一性,您可以计算所有
独立IP访问Web站点。
三.当你
推荐一个朋友时,你可以推荐一个基于标签的交集,它比某个阈值要大。
5。排序集序集
与
电视机相比,排序的集合是集合元素的权重
参数评分的增加,集合中的元素可以按分数,如一个有序集合存储级,该值可设定学生数,得分可以考试分数,这将在数据当时,这是一个自然的
顺序。你也可以使用有序集合是与消息队列的重量,如普通评分得分1重要的新闻是2,那么工人可以根据评分以相反的顺序获得任务选择优先考虑的重要任务。
1。加权元素,如
游戏的用户评分列表
2。更复杂的数据结构,常用的场景并不太多。
二,Redis的其他功能的使用
情况 1。订阅-发布
系统 酒吧/子是从字面理解发布(发布)和订阅(订阅),在使用,你可以设置为新闻和新闻订阅的关键值,当一个键-值对的消息发布后,所有订阅的客户将收到相应的信息,这个功能最明显的用途是作为一个实时信息系统,如普通的即时
聊天、群聊等功能。
2。交易交易
谁说的NoSQL不
支持这项交易,但交易并没有严格的Redis酸(如一串事务提交与在
服务器停机,执行exec命令,将命令的执行,执行的一部分而不是交易的休息)或提供一个基本的命令包执行功能(在服务器没有问题,可以保证指挥链与中间的执行顺序将为其他客户执行)。Redis也提供了一个手表的功能,你可以进行观察的一个关键,然后执行交易,在这个过程中,如果值了被修改,那么交易就会
发现,拒绝执行。