Redis技术分享精品PPT课件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
字符串类型是其它四种数据类型的基础,其他数据类型是 组织字符串的不同形式。
常用命令集:
EXPIRE命令介绍
设置一个键的生存时间,到时间后Redis会自动删除它 EXPIRE key seconds 参数表示键的生存时间,单位是秒 SET sessioon:29e3d uid1314 EXPIRE session:29e3d 900 返回0则表示不存在,返回1表示设置成功。 TTL session:293d 返回值是剩余时间(单位是秒)不
Redis大数据之路
主题内容
Redis介绍 数据类型。 发布与订阅 复制(Replaction) 持久化 事务 集群 Java客户端(Jredis)Spring整合
Redis介绍
Redis 它是一个开源的高性能的键值对数据库。意大利公 司 M e r z i a 公 司 于 2008年开发,09年完成, 同 年 开源) , 据 12年调查已有12%的大型应于在使用。例如:国外,GitHub 、Overflow;国内,知乎和新浪微博等。
使用双向列表,获取越接近两端的元素速度就越快。代价 是通过索引访问元素比较慢。比较适合记录日志。
集合类型
特点每个元素都是不同的,且没有顺序。一个集合类型( set)键可以存储2^32-1个字符串。
集合和列表类型有相似之处。 集合类型在Redis内部是使用值为空的散列表(hash
table)实现的,所以这些操作的时间复杂度都是0(1),最 方便的是多个集合类型之间还可以进行并集、交集和差集 运算。
命令列表
有序集合
虽然集合中每个元素都是不同的,但是 (2)二者都可以获得某一范围的元素。 区别: (1)列表类型是通过链表实现的,获取靠近两端的数据
速度极快,而当元素增多后,访问中间数据的速度会较慢, 所以它更加适合实现如新鲜事或日志这样很少访问中间元 素的应用。
复制(Replation)
redis 支持 master-slave(主从)模式,redis server 可以设置为另一个 redis server 的主机(从机),从机 定期从主机拿数据。特殊的,一个 从机同样可以设置为 一个 redis server 的主机,这样一来 master-slave 的 分布看起来就是一个有向无环图 DAG,如此形成 redis server 集群,无论是主机还是从机都是 redis server, 都可以提供服务)
这些命令被广泛用于构建即时通信应用,比如网络聊天室 (chatroom)和实时广播、实时提醒等。
PUBLISH命令用于向给定的频道发送信息,返回值为接 收到信息的订阅者数量
SUBSCRIBE 命令订阅给定的一个或多个频道:
订阅模式
Redis的发布与订阅实现支持模式匹配(pattern matching) 客户端可以订阅一个带*号的模式,如果某个/某些频道的名 字和这个模式匹配,那么当有信息发送给这个/这些频道的时 候,客户端也会收到这个/这些频道的信息。 客户端订阅的模式里面可以包含多个glob风格的通配符,比 如 *、?、和[...]等等 执行命令 PSUBSCRIBE new.* 客户端将收到来自new.art,news.music.zaxx 等频道信息 UNSUBSCRIBE/PUNSUBSCRIBE 指示客户端退订给定的频道/退 定所有的频道
存在或没设置返回1
PERSIST取消生存时间限制,使用SET或GETSET命令赋值也 会同时清除键的生存时间,其它键不会。
不适用的场合
大量的使用缓存且生存时间设置得过长就会导致Redis占 满内存;
Redis占用内存过大,而缓存的生存时间设得太短,就可 能导致缓存命中率过低并且大量内存白白地闲置。
LRU算法
其中LRU(least Recently Used)算法即最近最少使用,当 需要空间时这些键是可以被删除的。
事实上Redis并不会准确地将整个数据库中最久未被使用 的键删除,而是每次从数据库中随机取3个键并删除这3个 键中最久未被使用的键。
散列类型
散列类型的健值是一种字典结构,字段和字段值的映射, 字段值只能是字符串,不支持其它类型数据,散列类型不 能嵌套其他的数据类型(其它的也不支持)。一个散列类型 健可以包含至多2^32-1个字段。适合存储对象。
有序集合
(2)有序集合类型是使用列表实现的。所以即使读取位 于中间部分的数据速度也很快。
(3)列表中不能简单地调整某个元素的位置,但是有序 集合可以(通过更改这个元素的分数)
(4)有序集合要比列表类型更耗费内存。
发布与订阅
Redis 通过 PUBLISH 、 SUBSCRIBE 和 PSUBSCRIBE 等命 令实现发布和订阅功能。
特点: 它是由C语言开发,三万行代码,单线程,事件驱动。 所有数据保存在内存里,快速的读写性能。 一台普通的笔记本可以在一秒内读写超过十万个健值。
数据类型
字符串类型 散列类型 列表 集合 有序集合
字符串类型
字符串类型是Redis中最基本的数据类型。它能存任何形 式的字符串,包括二进制数据,可以Json化的对象或是一 张图片,一个字符串允许存储的数据的最大空 间 是512MB (3.0版本可能放宽这一限制)
将对象序列化后使用一个字符串类型健存储,这种方法无 法提供对单个字段的原子读写操作支持,从而产生竞态条 件,两个客户端同时获得并反序列化某个文章的数据,然 后分别修改不同的属性后存 储 ,后者会覆盖之前的数据, 最后只有最后一个属性被修改。取出所有的数据并反序列 化,比较消耗资源。
列表类型
列表类型(list)可以存储一个有序的字符串列表。常用的 操作是向列表两端添加元素,或者获得列表的某一个片段。
在开发中很难为缓存键设置合理的生存时间通常会通过配 置文件来淘汰不需要的缓存键,这种方式只将Redis用作 缓存系统时非常实用。
Maxmemory :限制Redis最大可用内存大小(单位字节) Maxmemory-policy :指定策略来删除不需要的键,直到
Redis占用的内存小于指定的内存。
相关文档
最新文档