redis学习笔记
文章平均质量分 72
iteye_5069
这个作者很懒,什么都没留下…
展开
-
redis的几种数据结构
通过分析底层的数据结构,学习如何根据场景选型和设计 1,简单动态字符串 redis使用的字符串SDS有别于C语言中的字符串 a, 结构 free字段为已分配但未使用的空间 len为已使用的空间(不计入'\0') buf为char数组 b, 与C字符串区别 redis的字符环结构可以理解为将C字符串封装了...原创 2015-07-25 15:43:54 · 650 阅读 · 0 评论 -
redis五种数据类型对象的实现及场景分析
1,redis对象的结构 type记录了对象的类型,可以使字符串,列表,哈希,集合和有序集合对象。 encoding记录的是type对象对应的底层实现,在redis中每种类型只有少两种底层实现的数据结构。通过不同的编码方式是redis可以根据不同的使用场景来选择不同的实现方式。同时不同编码在满足条件时会触发转换。 ptr是指向底层实现数据结构的指针。...原创 2015-07-25 17:51:53 · 146 阅读 · 0 评论 -
redis与memcache php rehash机制比较分析
1,Redis rehash Redis的核心数据结构就是字典(dict),dict在数据量不断增大的过程中,会遇到HASH(key)碰撞的问题,如果DICT不够大,碰撞的概率增大,这样单个hash 桶存储的元素会越来愈多,查询效率就会变慢。如果数据量从几千万变成几万,不断减小的过程,DICT内存却会造成不必要的浪费。Redis的dict在设计的过程中充分考虑了dict自动扩容和收...原创 2015-07-27 09:05:36 · 348 阅读 · 0 评论 -
redis 事件驱动机制
redis基于事件驱动构建服务,有两种事件类型,文件事件FileEvent,和时间事件TimeEvent。1,文件事件 以多路IO复用程序来同事监听多个套接字,处理网络连接的应答,读取,写入和关闭操作,并根据执行任务的不同分配不同的事件处理器来处理。 a, 结构体/* File event structure *//* 文件事件结构体 */typedef...原创 2015-08-06 17:33:52 · 998 阅读 · 0 评论 -
Redis主从复制
主服务器可以有多个从服务器。同时从服务器可以与其他的从服务器的连接,形成图状结构。Redis的复制在主服务器上是非阻塞的。这意味着从服务器执行同步时主服务器能继续处理请求。Redis的复制在从服务器上也是非阻塞的。当从服务器同步时,假如你在redis.conf中进行了相应配置,也能够继续使用旧版本的数据集处理请求。还可配置当复制流宕掉时,从服务器返回给客户端一个错误。但当同步结束后,旧...原创 2015-10-11 11:40:43 · 94 阅读 · 0 评论 -
Redis哨兵机制
哨兵(sentinel)是Redis高可用的解决方案,用来管理Redis实例,主要是监控、自动故障转移、通知、配置提供者。 1、sentinel的初始化 当一个 Sentinel 启动时, 它需要执行以下步骤: a) 初始化服务器。sentinel本质上是一个运行在特殊模式下的Redis实例。该模式下redis实例主要使用发布订阅、文件事件处理器、和时...原创 2015-10-13 21:36:38 · 235 阅读 · 0 评论 -
Redis事务和脚本功能
Redis事务是指将一些命令打包,一次性按顺序执行多个命令的机制,不会出现并发的情况,将命令都执行完以后才会执行其他命令。在一定程度上满足ACID特性。 1、Redis事务原理 事务由命令MULTI开始,使执行命令的客户端切换到事务状态,之后当执行EXEC、DISCARD、WATCH、MULTI以外的命令均会将命令放在一个先进先出的队列中。当向客户端发送EXEC命...原创 2015-10-16 15:55:21 · 113 阅读 · 0 评论 -
Redis Proxy
在Redis访问量比较大的情况,如果将请求都压在单实例上,将会造成Redis负载过高,连接数超限。因此为了平衡请求可将请求分散在通过Redis多个从库上,从库负责读,而主库负责写,redis proxy就是如何选择服务器并将请求分配的机制。 redis服务器的配置分三个维度:环境、主从、num确定一个服务器,num根据uid和app等来确定。每个app对应确定的库。在进行实例...原创 2016-01-25 10:06:48 · 464 阅读 · 0 评论 -
线上业务Redis数据迁移至SSDB
1,背景 Redis的持久化只是用于备份数据,而如果作为持久化存储会有一些问题(具体?),因此将Redis数据迁移至SSDB,命令列表见http://ssdb.io/docs/zh_cn/redis-to-ssdb.html2,策略 由于Redis存储的数据很重要,因此为了保证数据迁移的可靠性同时不对线上业务造成影响,采取分步过渡并验证的方式:3,关键点 ...原创 2016-01-25 10:06:51 · 321 阅读 · 0 评论