当前位置: 首页 > redis
  • 在Redis配置文件中有一个叫appendonly的选项,可以写yes或no.这个选项就是负责是否开启AOF日志的开关.AOF日志,你可以简单理解为MySQL binlog一样的东西,作用就是记录每次的写操作,在遇到断电等问题时可以用它来恢复数据库状态.但是他不是bin的,而是text的.一行一行,写得很规范.如果你是一台redis,那你也能人肉通过它恢复数据.

    阅读全文
    redis, 分布式系统, 缓存系统 885 人阅读 抢沙发 ,
  • rdb是redis保存内存数据到磁盘数据的其中一种方式(另一种是AOF)。Rdb的主要原理就是在某个时间点把内存中的所有数据的快照保存一份到磁盘上。在条件达到时通过fork一个子进程把内存中的数据写到一个临时文件中来实现保存数据快照。在所有数据写完后再把这个临时文件用原子函数rename(2)重命名为目标rdb文件。这种实现方式充分利用fork的copy on write。另外一种是通过save命令主动触发保存数据快照,这种是阻塞式的,即不会通过生成子进程来进行数据集快照的保存。

    阅读全文
  • Redis协议是构建在TCP协议之上的,我们在脚本中调用Redis时,通常是以发送-应答-再发送-再应答的模式进行的,而每一次发送与应答,都需要数据从客户端到服务端一次。当你需要使用Redis处理多个命令时,这样时间都消耗到网络延迟上可能就不划算了。使用Redis时避免网络延迟问题的方法:使用Redis新版本中的可变参数命令,利用Redis的pipelining机制,使用即将发布的Lua 脚本嵌入功能,使用SORT命令来取出多个key。

    阅读全文
    redis, 分布式系统, 缓存系统 694 人阅读 抢沙发 , , ,
  • Redis作为一个NoSQL类型的数据库,使用的是key作为存取对象的唯一标识,对“key”的通俗理解就是“字符串”。在Redis中字符串又分为两类:二进制安全(Binary Safe)的和非二进制安全的。Redis中使用字符串作为它的键,同时字符串也是“值”所使用的最基本的数据类型。当然还有更复杂的类型,比如:列表,集合,有序集合以及哈希表,不过即使是这些复杂的类型也是使用字符串来实现的。

    阅读全文
    redis, 分布式系统, 缓存系统 497 人阅读 抢沙发 , ,
  • Redis通过定义一个 struct redisServer 类型的全局变量server 来保存服务器的相关信息(比如:配置信息,统计信息,服务器状态等等)。启动时通过读取配置文件里边的信息对server进行初始化(如果没有指定配置文件,将使用默认值对sever进行初始化),初始化的内容有:起监听端口,绑定有新连接时的回调函数,绑定服务器的定时函数,虚拟内存初始化,log初始化等等。

    阅读全文
  • 我们的redis server是一主一从,使用R710的机器,8核心,24G内存; 每天约插入200万左右的数据,现在库里有3000万条纪录,占用了9G的内存;由于现在每天内存增长太快,担心很快会无法负载,因此写了脚本每天将过期数据删除。redis在dump数据的时候,内存使用率很高,cpu 使用率很高,设置为30分钟内只要有一次写修改就dump数据,这样系统负载大幅减轻了。

    阅读全文
    redis, 分布式系统, 缓存系统 735 人阅读 抢沙发 ,
  • 有一个IP范围对应地址的列表,现在需要给出一个IP的情况下,迅速的查找到这个IP在哪个范围,也就是要判断此IP的所有地。我们将这两个范围的起始位置存在Redis的Sorted Sets数据结构中,基本范围起始值作为score,范围名加start和end为其value值。这样数据在插入Sorted Sets后,相当于是将这些起始位置按顺序排列好了。

    阅读全文
    redis, 分布式系统, 缓存系统 594 人阅读 抢沙发 ,
  • Twemproxy是目前较为成熟的分布式管理的成品,但是由于它本身是将Redis定位于缓存管理而不是持久存储,所以只能成为分布式缓存管理软件,因为它缺乏必要的高可用性和一致性保证。Redis Cluster是值得期待的官方的集群管理组件,但在Master-Slave特性上,令人惊讶的是作者将slave纯粹作为备份组件而使Master成为脆弱的单点,同时Slave无疑对于内存而言是极大的浪费,并且缺乏高可用性。WheatRedis是采用Dynamo风格的基于Wheatserver分布式存储系统,它使用类似于Redis Cluster的固定slots数目方式来保证当加入新节点和节点下线时的最小数据震荡。WheatRedis可以指定数据的备份数来保证数据持久,并且采用全写随机读的方式来保证数据一致性。

    阅读全文
  • twemproxy(又称为nutcracker)是一个轻量级的Redis和Memcached代理,主要用来减少对后端缓存服务器的连接数。由Twitter开源出来的缓存服务器集群管理工具,主要用来弥补Redis和Memcached对集群(cluster)管理指出的不足。Twemproxy主要通过事件驱动模型来达到高并发,每收到一个请求,通过解析请求,发送请求到后端服务,再等待回应,发送回请求方。主要涉及到三个重要的结构:server, connection, message。

    阅读全文
    redis, 分布式系统, 缓存系统 2,342 人阅读 抢沙发 , , ,
  • Redis集群是一个实现分布式并且允许单点故障的Redis高级版本。Redis集群没有最重要或者说中心节点,这个版本最主要的一个目标是设计一个线性可伸缩的功能。Redis集群为了数据的一致性可能牺牲部分允许单点故障的功能,所以当网络故障和节点发生故障时这个系统会尽力去保证数据的一致性和有效性。

    阅读全文
    redis, 分布式系统, 缓存系统 799 人阅读 抢沙发 ,
  • Redis协议设计原则:容易实现;机器解析要快;容易被人理解。客户端通过创建到6379端口的TCP连接来连接到一个Redis服务器。每个Redis命令或者客户端和服务器之间传输的数据都以\r\n (CRLF)结束。Redis可以接受由不同参数组成的命令。只要接收到一个命令,这个命令就会被执行,然后一个答复会被返回给客户端。新的统一请求协议中所有发送到Redis服务器的参数都是二进制安全的。Redis会以不同类型的回复对命令进行响应。可以通过服务器发送的第一个字节来判定回复的类型。

    阅读全文
    redis, 分布式系统, 缓存系统 447 人阅读 抢沙发 ,