【Redis】Centos 7 安装 Redis 5.0

发布于:2024-08-08 ⋅ 阅读:(101) ⋅ 点赞:(0)

目录

Redis重大版本

Redis 2.6

Redis 2.8

Redis 3.0

Redis 3.2

Redis 4.0

Redis 5.0

Redis 6.0

Redis 7.0

安装并启动Redis

安装scl源

安装Redis5.0

启动Redis

停止Redis


Redis重大版本

Redis 借鉴了 Linux 操作系统对于版本号的命名规则:版本号第⼆位如果是奇数,则为⾮稳定版本
(例如 2.7、2.9、3.1),如果是偶数,则为稳定版本(例如 2.6、2.8、3.0、3.2)。当前奇数版本就是下⼀个稳定版本的开发版本,例如 2.9 版本是 3.0 版本的开发版本。所以我们⽣产环境通常选取偶数版本的 Redis,如果对于某些新的特性想提前了解和使⽤,可以选择最新的奇数版本。⽬前最新的版本是 7.0 版本。本篇文章将对 Redis 发展过程中的⼀些重要版本及特性进⾏说明,并且手把手教会你在Centos7上进行Redis的安装;

Redis 2.6

Redis 2.6 在 2012 年正式发布,相⽐于 Redis 2.4,主要特性如下:

  • 服务端⽀持 Lua 脚本
  • 去掉虚拟内存相关功能。
  • 放开对客⼾端连接数的硬编码限制。
  • 键的过期时间⽀持毫秒。
  • 从结点提供只读功能。
  • 两个新的位图命令:bitcount 和 bitop。
  • 增强了 redis-benchmark 的功能:⽀持定制化的压测、CSV 格式输出等功能。
  • 基于浮点数⾃增命令:incrbyfloat 和 hincrbyfloat。
  • redis-cli 可以使⽤ --eval 参数实现 Lua 脚本执⾏。
  • shutdown 命令增强。
  • info 可以按照 setction 输出,并且添加了⼀些统计项。
  • 重构了⼤量的核⼼代码,所i有集群相关的代码都去掉了,会在 3.0 ⽀持 cluster 功能。
  • sort 命令优化。

Redis 2.8

Redis 2.8 在 2013 年正式发布,相⽐于 Redis 2.6,主要特性如下:

  • 添加部分主从复制的功能,在⼀定程度上降低了由于⽹络问题,造成频繁全量复制⽣成 RDB 对
  • 系统造成的压⼒。
  • 尝试性地⽀持 IPv6。
  • 可以通过 config set 命令设置 maxclients。
  • 可以⽤ bind 命令绑定多个 IP 地址。
  • Redis 设置了明显的进程名,⽅便使⽤ ps 命令查看系统进程。
  • config rewrite 命令可以将 config set 持久化到 Redis 配置⽂件中。
  • 发布订阅添加了 pubsub 命令。
  • Redis Sentinel 第⼆版,相⽐于 Redis 2.6 的 Redis Sentinel,此版本已经变成⽣产可⽤。

Redis 3.0

  • Redis 3.0 在 2015 年正式发布,相⽐于 Redis 2.8,主要特性如下:
  • Redis Cluster:Redis 提供的官⽅分布式实现。
  • 全新的 embedded string 对象编码结果,优化了⼩对象内存访问,在特定的⼯作负载时,下载
  • 速度⼤幅提⾼。
  • 优化了 LRU 算法,⼤幅提供性能。
  • migrate 链接缓存,⼤幅提供键迁移的速度。
  • migrate 命令新增两个参数:copy 和 replace。
  • client pause 命令,在指定时间内中⽌处理客⼾端请求。
  • bitcount 命令性能提⾼。
  • config set 设置 maxmemory 时候能够设置不⼀样的单位(以前只能是字节)。
  • Redis⽇志⼩作调整:⽇志中会反应当前实例的⻆⾊(master 或者 slave)。
  • incr命令性能提⾼。

Redis 3.2

Redis 3.2 在 2016 年正式发布,相⽐于 Redis 3.0,主要特性如下:

  • 添加 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 版本。

Redis 4.0

Redis 4.0 在 2017 年正式发布,相⽐于 Redis 3.2,主要特性如下:

  • 提供了模块系统(module),⽅便第三⽅开发者拓展 Redis 的功能。
  • PSYNC 2.0:优化了以前版本中,主从节点切换必然引发全量复制的问题。
  • 提供了新的缓存剔除算法:LFU(Last Frequently Used),注意 LFU 和 LRU 算法的不同之处,LRU 的淘汰规则是基于访问时间,⽽ LFU 是基于访问次数的,并对已有算法进⾏了优化。
  • 提供了⾮阻塞 del 和 flushall / flushdb 功能,新添加了 unlink 命令, 这个命令是 del 命令的异步版本, 它可以将删除指定键的操作放在后台线程⾥⾯执⾏。
  • 提供了 memory 命令,实现对内存更为全⾯的监控统计。
  • 提供了交互数据库功能,实现 Redis 内部数据库的数据置换。
  • 提供了 RDB-AOF 混合持久化格式,充分利⽤了 AOF 和 RDB 各⾃优点。
  • Redis Cluster 兼容 NAT 和 docker 。

Redis 5.0

  • Redis 5.0 在 2018 年正式发布,相⽐于 Redis 4.0,主要特性如下:
  • 新的流数据类型(stream)。
  • 新的 Redis 模块 API:定时器、集群和字典 API。
  • RDB 现在可存储 LFU 和 LRU 信息。
  • redis-cli 中的集群管理器从 Ruby(redis-trib.rb)移植到了 C 语⾔代码。执⾏ `redis-cli --cluster help` 命令以了解更多信息。
  • 新的有序集合(sorted set)命令:zpopmin / zpopmax 和阻塞变体(blocking variants)。
  • 升级 Active defragmentation ⾄ v2 版本。
  • 增强 HyperLogLog 的实现。
  • 更好的内存统计报告。
  • 许多包含⼦命令的命令现在都有⼀个 help ⼦命令。
  • 客⼾端频繁连接和断开连接时,性能表现更好。
  • 许多错误修复和其他⽅⾯的改进。
  • 升级 Jemalloc ⾄ 5.1 版本。
  • 引⼊ client unblock 和 client id。
  • 新增 lolwut 命令。
  • 在不存在需要保持向后兼容性的地⽅,弃⽤ "slave" 术语。
  • ⽹络层中的差异优化。
  • 增强对 Lua 的⽀持:将 Lua 脚本更好地传播到 replicas / AOF、Lua 脚本现在可以超时并在副本中进⼊ -BUSY 状态。
  • 引⼊动态的 HZ(Dynamic HZ)以平衡空闲 CPU 使⽤率和响应性。
  • 对 Redis 核⼼代码进⾏了重构并在许多⽅⾯进⾏了改进。

Redis 6.0

Redis 6.0 在 2020 年正式发布,相⽐于 Redis 5.0,主要特性如下:

  • Redis 6.0 引⼊多线程 IO,但多线程部分只是⽤来处理⽹络数据的读写和协议解析,执⾏命令仍然是单线程。
  • 实现了client-side-caching(客⼾端缓存)功能。放弃了caching slot,⽽只使⽤ key names。
  • Redis 6.0 开始在兼容 RESP 2 的基础上,开始⽀持 RESP 3(RESP,Redis SerializationProtocol 是 Redis 服务端与客⼾端之间通信的协议)。
  • 连接⽀持 SSL,更加安全。
  • 增强 ACL 权限控制:⽀持对客⼾端的权限控制,实现对不同的 key 授予不同的操作权限、新增⼀个新的ACL ⽇志命令,允许查看所有违反 ACL 的客⼾机、访问不应该访问的命令、访问不应该访问的密钥,或者验证尝试失败。这对于调试 ACL 问题⾮常有⽤。
  • 提升了RDB⽇志加载速度。
  • 发布官⽅的 Redis 集群代理模块 Redis Cluster Proxy。
  • 提供了众多的新模块(modules)API。

Redis 7.0

Redis 7.0 在 2022 年正式发布,相⽐于 Redis 6.0,主要特性如下:

  • 将 AOF ⽂件的存储⽅式改为在⼀个⽂件夹下存储多个⽂件。
  • 将持久化⽂件 RDB 的版本升级为 10,与之前的 RDB ⽂件版本不再兼容。
  • 在读取⽼的 RDB ⽂件格式的时候将 ziplist 转换为 listpack,这种转换发⽣于两种情况之下:从磁盘读取⽂件或者从⼀个主节点进⾏复制⽂件的时候。
  • 在 redis.conf 配置⽂件中,protected-mode 默认更改为 yes,只有当你希望你的客⼾端在没有授权的情况下可以连接到 Redis server 的时候可以将 protected-mode 设置为 no。
  • 在 ACL 中,pub / sub channel 默认是被阻塞的。
  • 在从节点中,TTL 的时间标识的是绝对时间,不再是相对时间,从⽽保证了过期数据被及时删除。 
  • 不再⽀持 gopher 协议。
  • 当在配置⽂件中设置 replica-serve-stale-data=no, 当主节点不再提供服务时,ping 命令得不到返回值。

安装并启动Redis

上面我们大致了解了Redis的几个重大版本,我们选择安装5.0版本是因为这个版本支持了大部分的功能特性,相较于最新的7.0版本,更容易进行安装和使用。我以我的Centos7云服务器为例进行安装Redis5.0;

安装scl源

yum install centos-release-scl-rh

安装Redis5.0

yum install rh-redis5-redis

创建符号链接(软链接)

默认安装的⽬录为 /opt/rh/rh-redis5/root/usr/bin/ , 藏的太深了, 不⽅便使⽤. 我们通过符号链接, 把需要用的关键内容设置到⽅便使用的目录中。

针对可执行程序设置符号链接

cd /usr/bin
ln -s /opt/rh/rh-redis5/root/usr/bin/redis-server ./redis-server
ln -s /opt/rh/rh-redis5/root/usr/bin/redis-sentinel ./redis-sentinel
ln -s /opt/rh/rh-redis5/root/usr/bin/redis-cli ./redis-cli

针对配置文件设置符号链接

cd /etc/
ln -s /etc/opt/rh/rh-redis5/ ./redis

修改配置文件

设置ip地址

bind 0.0.0.0

关闭保护模式

protected-mode no

启动守护进程

daemonize yes

设置工作目录

先创建工作目录

mkdir -p /var/lib/redis

在配置文件中设置工作目录

dir /var/lib/redis

设置日志目录

先创建日志目录

mkdir -p /var/log/redis/

在配置文件中设置日志目录

logfile /var/log/redis/redis-server.log

启动Redis

redis-server /etc/redis/redis.conf

停止Redis

先查看Redia-server的pid

ps aux | grep redis

然后通过kill命令直接杀死Redis进程

kill pid

今天对Redis重大版本和如何安装Redis的分享到这就结束了,希望大家读完后有很大的收获,也可以在评论区点评文章中的内容和分享自己的看法;个人主页还有很多精彩的内容。您三连的支持就是我前进的动力,感谢大家的支持!!! 


网站公告

今日签到

点亮在社区的每一天
去签到