关于redis的一些总结

来源:互联网 发布:在linux执行shell 编辑:程序博客网 时间:2024/06/08 18:03
  • redis是一个全内存的数据结构服务器
    • 支持多种常用数据结构,例如list set hash map 
    • 多种内存索引(hash索引,skip list,rtree索引、组合索引、二级索引等)
    • 可以灵活的配置数据的存储格式(是否进行压缩)
    • 支持多种计算功能,如简单的集合的交并补,排序等
  • redis对于持久化的支持有两种,一种AOF(append only file),一种RDB。
    • AOF是每一个写请求就做一次文件系统cache write,之后的fsync的频率可以配置
      • never
      • 每隔一段时间
      • 每次write完立刻sync;
      • AOF的数据格式跟redis client/server的binary数据格式相同,没有做任何压缩。
    • RBD是一种压缩的格式,可以配置每隔一定周期,主线程空闲时会fork一个子进程,由子进程负责将内存快照写入磁盘。如果数据量很大时,主进程在fork的时候时间会比较长。fork系统调用做的两件事跟内存大小有很大关系,一个是去修改原来主进程的大量的物理内存页也表的读写标记位,另外一个是为新进程创建物理页表的映射项。
  • 由此可见,redis并没有一个支持ACID的存储引擎。AOF sync always勉强算,但是性能太差。因为做写操作是redis唯一的线程,fsync返回之前无法响应读请求。
  • 支持lua,可以做些简单的运算。
  • redis除了做缓存,订阅发布+持久化存储,可以用redis做一个即时通讯工具的消息通讯模块。
  • redis还支持订阅发布、hyperloglog、简单的事务支持、R树索引等。
0 0