Redis

Redis使用Doc

Redis在项目中使用的地方很多,学会Redis使用是必须的素养

Redis学习什么

  • Redis安装&配置
  • Redis基础概念
  • Redis各种场景下使用方法

Redis版本及特性

  • Redis2.6[2012]

    • 服务端支持Lua脚本
    • 去掉虚拟内存相关功能
    • 放开客户端连接数的硬编码限制
    • 键的过期时间支持到毫秒级
    • 从节点支持只读功能
    • 两个新的位图命令:bitcount & bitop
    • 增强了redis-benchmark的功能:支持定制化压测 & CSV输出等
    • 基于浮点数自增命令:incrbyfloat & hincrbyfloat
    • redis-cli可以使用–eval参数实现Lua脚本执行
    • shutdown命令增强
    • 去掉了集群代码(留在3.0中更新)
    • sort命令优化
  • Redis2.8[2013]

    • 添加部分主从复制的功能
    • 尝试支持IPV6
    • 可以通过config set命令设置maxclients
    • 可以用bind命令绑定多个IP地址
    • 设置了明显的进程名,方便使用ps命令查看系统进程
    • config rewrite命令可以将config set持久化到Redis配置文件中
    • 发布订阅添加了pubsub
  • Redis3.0[2015]

    • Redis Cluster:Redis的官方分布式实现。
    • 全新的embedded string对象编码结果,优化小对象内存访问,在特定的工作负载下载速度大幅提升。
    • LRU算法大幅提升。
    • migrate连接缓存,大幅提升键迁移的速度。
    • migrate命令两个新的参数copy和replace。
    • 新的client pause命令,在指定时间内停止处理客户端请求。
    • bitcount命令性能提升。
    • cinfig set设置maxmemory时候可以设置不同的单位(之前只能是字节)。
    • Redis日志小做调整:日志中会反应当前实例的角色(master或者slave)。
    • incr命令性能提升。
  • Redis3.2[2016]

    • 添加GEO相关功能。
    • SDS在速度和节省空间上都做了优化。
    • 支持用upstart或者systemd管理Redis进程。
    • 新的List编码类型:quicklist。
    • 从节点读取过期数据保证一致性。
    • 添加了hstrlen命令。
    • 增强了debug命令,支持了更多的参数。
    • Lua脚本功能增强。
    • 添加了Lua Debugger。
    • config set 支持更多的配置参数。
    • 优化了Redis崩溃后的相关报告。
    • 新的RDB格式,但是仍然兼容旧的RDB。
    • 加速RDB的加载速度。
    • spop命令支持个数参数。
    • cluster nodes命令得到加速。
    • Jemalloc更新到4.0.3版本。
  • Redis4.0[2017]

    • 提供了模块系统,方便第三方开发者拓展Redis的功能。
    • PSYNC2.0:优化了之前版本中,主从节点切换必然引起全量复制的问题。
    • 提供了新的缓存剔除算法:LFU(Last Frequently Used),并对已有算法进行了优化。
    • 提供了非阻塞del和flushall/flushdb功能,有效解决删除了bigkey可能造成的Redis阻塞。
    • 提供了memory命令,实现对内存更为全面的监控统计。
    • 提供了交互数据库功能,实现Redis内部数据库的数据置换。
    • 提供了RDB-AOF混合持久化格式,充分利用了AOF和RDB各自优势。
    • Redis Cluster 兼容NAT和Docker。
  • Redis5.0[2018]

    • 新的Stream数据类型。
    • 新的Redis模块API:Timers and Cluster API
    • RDB现在存储LFU和LRU信息。
    • 集群管理器从Ruby(redis-trib.rb)移植到C代码。可以在redis-cli中。查看redis-cli —cluster help了解更多信息。
    • 新sorted set命令:ZPOPMIN / MAX和阻塞变量。
    • 主动碎片整理V2。
    • 增强HyperLogLog实现。
    • 更好的内存统计报告。
    • 许多带有子命令的命令现在都有一个HELP子命令。
    • 客户经常连接和断开连接时性能更好。
    • 错误修复和改进。
    • Jemalloc升级到5.1版