当前位置: 首页 > 分布式系统
  • Redis SPOP函数确实不是随机的,也确实是在SADD时就确定了SPOP的顺序,在SADD时,会对value值进行Hash值的计算来确定其在sets中的排序位置,于是出现上面的相同的值被SADD会出现SPOP出的值顺序相同了。其实这个要改动起来确实不大,作者承诺在2.2版本发布时完成这个小改动。

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

    阅读全文
    redis, 分布式系统, 缓存系统 906 人阅读 抢沙发 ,
  • 但凡初次接触MongoDB的人,无不惊讶于它对内存的贪得无厌,至于个中缘由,我先讲讲Linux是如何管理内存的,再说说MongoDB是如何使用内存的,答案自然就清楚了。程序访问的都是虚拟内存地址,然后操作系统会通过Page Table机制把它翻译成物理内存地址。MongoDB使用的是内存映射存储引擎,它会把数据文件映射到内存中,如果是读操作,内存中的数据起到缓存的作用,如果是写操作,内存还可以把随机的写操作转换成顺序的写操作,总之可以大幅度提升性能。MongoDB并不干涉内存管理工作,而是把这些工作留给操作系统的虚拟内存管理器去处理。

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

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