【Redis】Centos 7 安装 Redis 5.0

news2024/9/28 1:25:25

目录

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的分享到这就结束了,希望大家读完后有很大的收获,也可以在评论区点评文章中的内容和分享自己的看法;个人主页还有很多精彩的内容。您三连的支持就是我前进的动力,感谢大家的支持!!! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1975295.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C#裁剪图像的几种方法总结

前言 我们在上位机软件开发过程中经常需要裁剪图像,本文就是对c#中常见的裁剪图像方法进行总结。 1、克隆 直接调用Bitmap的Clone函数,然后指定需要裁剪的区域即可裁剪图像,该种方法不会损失精度 public static Bitmap CropImage_Clone(Bi…

[Bugku] web-CTF-网站被黑

1.开启环境 F12查看源代码 没有信息,扫描目录 扫描出shell.php 抓包尝试 使用密码字典爆破密码 得出flag

TypeScript 基础类型与类型声明

前言 在 JavaScript 中,变量是没有类型的,变量的值的类型是在运行时确定的,这被称为动态类型。 这意味着可以在不同的时间将不同类型的值赋给同一个变量,并且 JavaScript 会在运行时根据当前赋给变量的值来确定其类型。 示例&…

学生管理系统之界面设计

学生管理系统之界面设计 建立工程 新建登录界面

自动气象站:高度自动化、智能化和精准化

自动气象站,作为科技进步的产物,以其高度的自动化、智能化和精准化特点,极大地提升了气象观测的效率和准确性。它集成了多种高精度传感器,能够全天候、不间断地监测温度、湿度、气压、风速、风向、降水量等关键气象要素&#xff0…

RabbitMq架构原理剖析及应用

文章目录 RabbitMQ 架构组件1. **Broker** (Broker Server)2. **Exchange**3. **Queue**4. **Producer** (消息生产者)5. **Consumer** (消息消费者)6. **Virtual Hosts** (虚拟主机) 工作流程内部原理1. **队列管理**2. **集群**3. **持久化与内存**4. **性能优化** 高级特性1…

高德地图离线版 使用高德地图api的方法

高德离线包我已经存至Gitee(自行下载即可):高德地图离线解决方案: 高德地图离线解决方案 然因为高德地图的瓦片地图太大,所以要让后端部署下 前端直接调用 如果本地 直接找到瓦片图路径就可以 initMap () {const base_url "…

基于 Kafka 的经验:AutoMQ 和 MinIO 如何解决成本和弹性挑战

Apache Kafka 因其出色的设计和强大的功能而成为流式处理的事实标准。它不仅定义了现代流式处理的架构,而且其独特的分布式日志抽象还为实时数据流处理和分析提供了前所未有的功能。Kafka 的成功在于它能够满足高吞吐量和低延迟的数据处理需求,多年来&am…

(2024|ICLR,∞-Diff,无限维平滑扩散,希尔伯特空间,超分辨率,多尺度架构)具有子采样平滑状态的无限分辨率扩散

∞-Diff: Infinite Resolution Diffusion with Subsampled Mollified States 目录 0. 摘要 1. 简介 2. 生成式神经场 3. 无限维扩散模型 3.1 平滑化(Mollificaition) 3.2 无限维度平滑扩散 4. 参数化扩散过程 4.1 神经算子 4.2 多尺度架构 4.3…

element-plus框架+vue3+echart——后台页面

一、图表样式 图表组件:echarts https://echarts.apache.org/examples/zh/index.html element-plus框架: https://www.cwgj.xyz/zh-CN/ 1、折线图 栅格 一共24。 12代表占一半50%, 当页面缩小到一定程度 占整个屏幕的100%。 id"mo…

【Axure教程】拖拉拽编辑页面

低代码开发平台通常提供拖拉拽编辑页面的功能,使用户无需编写大量代码即可创建复杂的应用程序和页面。这种平台的特点是通过图形用户界面来进行开发,用户可以拖拽组件到画布上进行布局和配置。 那今天作者就教大家在Axure里怎么制作拖拉拽动态编辑页面的…

01 LVS负载均衡群集

1.1 LVS群集应用基础 群集的称呼来自于英文单词“Cluster",表示一群、一串的意思,用在服务器领域则表示大量服务器的集合体,以区分于单个服务器。 1.1.1 群集技术概述 LVS(Linux Virtual Server)是Linux虚拟服…

linux下的线程

概念理解 linux下没有线程的概念,只有轻量级进程的概念, 有接口:clone() 是clone()调用,在库中创建栈 源码解析 int clone(int (*fn)(void *), void *child_stack,int flags, void *arg, .../* pid_t *p…

【Spring】详细了解静态代理和动态代理的使用

目录 1.代理模式介绍 2. 静态代理 3.动态代理 3.1 JDK动态代理 3.2 CGLIB动态代理 4. 动态代理和静态代理的区别 1.代理模式介绍 代理模式分为动态代理和静态代理,目的是在不直接暴露真实对象的情况下,通过代理对象来间接访问真实对象,从…

【设计模式】设计模式之观察者模式

文章目录 观察者模式什么是观察者模式引入组成UML图代码实现1. 定义观察者接口2. 定义主题接口3. 实现具体观察者4. 实现具体被观察者5.测试 应用场景优点缺点 观察者模式 什么是观察者模式 观察者模式(Observer Pattern)是一种设计模式 它定义了一种…

vLLMcuda安装笔记

1. 引言 最近在部署Qwen模型时,文档上有提到强烈建议用vLLM来部署模型,按照公开的性能测试数据,用vLLM部署Qwen模型的文本推理速度要比transformers部署快3~4倍。带着这个好奇就开始安装尝试,但试下来这个安装过程并没有那么顺利…

最新个人免签约支付系统源码|PHP源码 | 码支付系统 | ThinkPHP6框架 | 开源

源码介绍: 这个最新的个人专用免签约支付系统源码!是PHP源码写的哦,而且是用ThinkPHP6框架开发的,完全开源的码支付系统。 这个系统适合个人用户使用,作为收款的免签约解决方案。它还加入了监控端,可以拒…

Linux 调试追踪: trace-cmd 和 kernelshark

文章目录 1. 前言2. 概述3. trace-cmd3.1 下载3.2 交叉编译3.3 安装、运行3.3.1 trace-cmd 示范:抓取系统调度信息 4. kernelshark5. 参考资料 1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承…

Java多线程-----定时器(Timer)及其实现

目录 一.定时器简介: 二.定时器的构造方法与常见方法: 三.定时器的模拟实现: 思路分析: 代码实现: 在开发中,我们经常需要一些周期性的操作,例如每隔几分钟就进行某一项操作,这…

【QT】常用控件-上

欢迎来到Cefler的博客😁 🕌博客主页:折纸花满衣 目录 👉🏻QWidgetenabledgeometryrect制作上下左右按钮 window frame 的影响window titlewindowIcon代码示例: 通过 qrc 管理图片作为图标 windowOpacitycursor使用qrc自…