四、Rocky Linux 9.x安装Valkey 8.0.1

在这里插入图片描述


前言

在此,不讨论协议变更所引发的种种,只做学习
⚡️2024年3月20日,Redis Labs宣布从Redis 7.4开始,将原先比较宽松的BSD源码使用协议修改为RSAv2SSPLv1协议。点我查看Redis协议许可修改页
⚡️之后, PlaceholderKV的建立, 基金会宣布打算成立Valkey ,这是 Redis 内存中 NoSQL 数据存储的开源替代品。项目贡献者迅速聚集了维护者、社区和企业支持,重新组合,以响应Redis Inc.最近宣布的许可证变更。Valkey将继续在 Redis 7.2.4 上进行开发,并将保持该项目在开源 Berkeley Software 下可供使用和分发分发 (BSD) 3 条款许可证。
⚡️随后,Linux 基金会内的新名称和 Valkey 的形成、来自世界各地的社区成员的数百次代码更新以及候选版本。这些都在大约三周的时间内完成。
⚡️由此,Valkey它诞生了。Valkey的Github地址,在Github该项目页面上,也描述着,项目代码是在过渡到新的源可用许可证之前从开源 Redis 项目中分叉出来的。Valkey 是一个高性能数据结构服务器,主要服务于键/值工作负载。它支持广泛的本机结构和可扩展的插件系统,用于添加新的数据结构和访问模式。

2024年9月16日,Valkey已经正式发布:Valkey 8.0.0版本,本文安装的是它的小版本更新的Valkey 8.0.1,以单机模式进行安装。



一、Github Tags页下载安装包

安装包,可以从Github的tags页下载valkey-8.0.1.tar.gz
在这里插入图片描述

二、上传压缩包到服务器、修改配置文件、启动

1.上传压缩包

自我约定:软件都放在/app

# 创建存放valkey文件夹,上传压缩包
mkdir /app/valkey
# 解压valkey-8.0.1.tar.gz
tar -zxvf valkey-8.0.1.tar.gz
# 随后进入valkey-8.0.1文件,查看里面的内容。
cd valkey-8.0.1
# 是不是很熟悉,熟悉就对了,有redis那味了嗷~

在这里插入图片描述

2.下载make、gcc命令,并且编译、测试、安装

✌️和redis一样,我们下载的valkey是它的字节码文件,需要使用make进行编译

make 是一个自动化构建工具,通常用于编译和构建源代码。它通过读取 Makefile 文件来执行特定的构建命令,帮助开发者自动化编译、链接以及其他构建任务。make 在 C/C++ 等开发语言中非常常见,但也可以用于其他需要自动化构建的项目。

# 在服务器上安装make、gcc命令
yum install -y make gcc
# 安装完成后,在/app/valkey/valkey-8.0.1/src下,执行make命令
cd /app/valkey/valkey-8.0.1/src
# 开始编译
make 
# 耐心等待,之后会提示如下。
...
Hint: It's a good idea to run 'make test' ;)

# 之后可以make test测试下,发现了这个tcl东西。
[root@localhost src]# make test
    CC Makefile.dep
You need tcl 8.5 or newer in order to run the Valkey test
make: *** [Makefile:573: test] Error 1

⚠️以下这些步骤,可以跳过,但是因为是第一次安装,所以都试一下。不得不说,这个make test 确实挺久的,我虚拟机4核心4线程8G内存,跑了十几分钟

Valkey 可能使用 Tcl 来执行一些测试任务或者作为其构建和测试框架的一部分。通常情况下,Tcl 被用作:
👏自动化脚本:用于自动化测试、构建、部署等任务。
👏嵌入式脚本语言:如果 Valkey 项目是用 C 或 C++ 开发的,Tcl 可能被嵌入到程序中来执行一些动态脚本任务。
👏测试框架:Tcl 可以作为一种轻量级的脚本语言,来控制和执行单元测试或集成测试。

# 先看看本地的这个版本是什么
[root@localhost src]# tclsh --version
-bash: tclsh: command not found
# 没有,那就安装一下吧
yum install -y tcl
# 等待安装,安装完成后,再进行make test,再耐心等待,有124项
[107/124 done]: unit/cluster/slave-selection (106 seconds)

⚡️⚡️⚡️开始安装⚡️⚡️⚡️

# 之后,开始安装
cd /app/valkey/valkey-8.0.1/src
make install

[root@localhost src]# make install

Hint: It's a good idea to run 'make test' ;)


Hint: It's a good idea to run 'make test' ;)

    INSTALL valkey-server
    INSTALL valkey-benchmark
    INSTALL valkey-cli
    INSTALL SYMLINK redis-server -> valkey-server  
    INSTALL SYMLINK redis-cli -> valkey-cli  
    INSTALL SYMLINK redis-benchmark -> valkey-benchmark  
    INSTALL SYMLINK redis-check-rdb -> valkey-check-rdb  
    INSTALL SYMLINK redis-check-aof -> valkey-check-aof  
    INSTALL SYMLINK redis-sentinel -> valkey-sentinel  

🎉🎉🎉安装完成🎉🎉🎉


3.修改配置文件

✳️ 我们这里,进行单机模式部署,需要修改valkey.conf即可,sentinel.conf是集群的配置。
😏编辑valkey.conf时,有意思的是,我发现valkey的端口和redis也是一样的默认是6379。如果彦祖你和redis混用的话,记得把端口也改下,不然启不启来。
😳行吧,咱们继续

vim valkey.conf

# 第88行,注释bind,运行远程登录
# bind 127.0.0.1 -::1

# 第112行,禁用保护模式,protected-mode yes 改为 protected-mode no
protected-mode no 

# 第308行,配置 Redis 作为后台守护进程运行,daemonize no 改为 daemonize yes
daemonize yes

# 第1081行,修改登录密码为:ikun2.5amagi
requirepass ikun2.5amagi

# 之后退出保存
:wq

4.单机后台启动

⚡️⚡️⚡️激动人心的时刻,启动Valkey⚡️⚡️⚡️

# 启动命令
/app/valkey/valkey-8.0.1/src/valkey-server /app/valkey/valkey-8.0.1/valkey.conf &

# 回车后,会看到如下日志
[root@localhost valkey-8.0.1]# /app/valkey/valkey-8.0.1/src/valkey-server /app/valkey/valkey-8.0.1/valkey.conf &
[1] 49973
[root@localhost valkey-8.0.1]# 49973:C 25 Nov 2024 18:39:00.735 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
49973:C 25 Nov 2024 18:39:00.735 * oO0OoO0OoO0Oo Valkey is starting oO0OoO0OoO0Oo
49973:C 25 Nov 2024 18:39:00.735 * Valkey version=8.0.1, bits=64, commit=00000000, modified=0, pid=49973, just started
49973:C 25 Nov 2024 18:39:00.735 * Configuration loaded
49973:M 25 Nov 2024 18:39:00.735 * Increased maximum number of open files to 10032 (it was originally set to 1024).
49973:M 25 Nov 2024 18:39:00.735 * monotonic clock: POSIX clock_gettime
                .+^+.                                                
            .+#########+.                                            
        .+########+########+.           Valkey 8.0.1 (00000000/0) 64 bit
    .+########+'     '+########+.                                    
 .########+'     .+.     '+########.    Running in standalone mode
 |####+'     .+#######+.     '+####|    Port: 6379
 |###|   .+###############+.   |###|    PID: 49973                     
 |###|   |#####*'' ''*#####|   |###|                                 
 |###|   |####'  .-.  '####|   |###|                                 
 |###|   |###(  (@@@)  )###|   |###|          https://valkey.io      
 |###|   |####.  '-'  .####|   |###|                                 
 |###|   |#####*.   .*#####|   |###|                                 
 |###|   '+#####|   |#####+'   |###|                                 
 |####+.     +##|   |#+'     .+####|                                 
 '#######+   |##|        .+########'                                 
    '+###|   |##|    .+########+'                                    
        '|   |####+########+'                                        
             +#########+'                                            
                '+v+'                                                

49973:M 25 Nov 2024 18:39:00.738 * Server initialized
49973:M 25 Nov 2024 18:39:00.738 * Ready to accept connections tcp

# 查看valkey进程,可以看到,已经成功运行了
[root@localhost valkey-8.0.1]# ps -ef|grep valkey
root       49973    1897  0 18:39 pts/0    00:00:00 /app/valkey/valkey-8.0.1/src/valkey-server 127.0.0.1:6379
root       49979    1897  0 18:39 pts/0    00:00:00 grep --color=auto valkey

三、将Valkey注册为系统服务

目的是为了:
👏每次重启服务器,能够自动连接。
👏方便一行命令启动,不用敲那么多。
使用以下命令创建名为valkey.service的文件

# 创建名为valkey.service的文件
vim /etc/systemd/system/valkey.service

⭐️⭐️⭐️以下为完整的valkey.service内容⭐️⭐️⭐️

[Unit]
Description=Valkey Server
After=network.target

[Service]
Type=forking
ExecStart=/app/valkey/valkey-8.0.1/src/valkey-server /app/valkey/valkey-8.0.1/valkey.conf
Restart=on-failure
WorkingDirectory=/app/valkey/valkey-8.0.1/
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

[Install]
WantedBy=multi-user.target

保存后,重新加载系统配置

# 重新加载 systemd 配置
systemctl daemon-reload
# 设置服务开机启动
systemctl enable valkey
# 启动服务
systemctl start valkey
# 查看状态
systemctl status valkey

检查下,Valkey是否正常运行

ps -ef|grep valkey
# 或者
systemctl status valkey
# 再检查下valkey.service的日志50行,命令
journalctl -u valkey.service -n 50

日志显示
Nov 25 19:30:47 localhost.localdomain systemd[50397]: valkey.service: Failed to locate executable /app/valkey/valkey-8.0.1/src/valkey-server: Permission denied

出现这种问题,可能是SELinux 限制
将 SELINUX=enforcing 改为 SELINUX=disabled,然后保存并重启系统。

# 禁用 SELinux
vim /etc/selinux/config
# 修改完后,重启系统
reboot
# 然后重启Valkey
systemctl start valkey
# 查看状态,此时
systemctl status valkey

# 可以看到如下 Active: active (running) 运行中
[root@localhost ~]# systemctl status valkey
● valkey.service - Valkey Server
     Loaded: loaded (/etc/systemd/system/valkey.service; enabled; preset: disabled)
     Active: active (running) since Mon 2024-11-25 21:30:49 CST; 1s ago
    Process: 1626 ExecStart=/app/valkey/valkey-8.0.1/src/valkey-server /app/valkey/valkey-8.0.1/valkey.conf (code=exited, status=0/SUCCESS)
   Main PID: 1628 (valkey-server)
      Tasks: 6 (limit: 48698)
     Memory: 7.2M
        CPU: 24ms
     CGroup: /system.slice/valkey.service
             └─1628 "/app/valkey/valkey-8.0.1/src/valkey-server *:6379"

Nov 25 21:30:49 localhost.localdomain systemd[1]: Starting Valkey Server...
Nov 25 21:30:49 localhost.localdomain systemd[1]: Started Valkey Server.

四.使用客户端工具连接

Valkey既然和Redis是同源,那使用Redis 的连接工具,是否能连接成功?

使用 Another Redis Desktop Manager 连接工具,进行连接,发现确实能够连接得上,只是对应的版本,是Redis7.2.4,也是这个从这个版本开始fork代码的。

该处使用的url网络请求的数据。
在这里插入图片描述

总结

先从Github Tags页下载安装包后,上传至服务器并修改配置文件、启动。
再将Valkey注册为系统服务
😆最后使用客户端工具连接

😳在想,后续应该会有挺多的连接框架,能够适配Valkey,虽然现在使用Redis的连接工具、框架也可以。

相关资讯:
Valkey官网
Valkey的Github
AnotherRedisDesktopManager的Github

👏👏👏文章更新 2025年4月28日

在2025年4月23日的时候,最新版的Vlakey也是更新到了8.1.1
在这里插入图片描述

1.依旧去github下载最新版的8.1.1,之后将包直接丢到服务器上的/app/valkey目录下

在这里插入图片描述

# 解压缩最新的Valkey-8.1.1包
tar -zxvf /app/valkey/valkey-8.1.1.tar.gz

2.备份单机备份文件,并将原来valkey-8.0.1的valkey.conf拷贝到valkey-8.1.1下,完成配置文件的修改

cd /app/valkey/valkey-8.1.1
mv valkey.conf valkey.conf.bak_20250428
cp /app/valkey/valkey-8.0.1/valkey.conf /app/valkey/valkey-8.1.1

3.编译

cd /app/valkey/valkey-8.1.1/src
make && install

... 继续稍等片刻 ... 

在这里插入图片描述
看到valkey-server出现,说明已经编译完成。

4.修改service服务

# 创建名为valkey.service的文件
vim /etc/systemd/system/valkey.service

⭐️⭐️⭐️以下为完整的valkey.service内容⭐️⭐️⭐️

[Unit]
Description=Valkey Server
After=network.target

[Service]
Type=forking
ExecStart=/app/valkey/valkey-8.1.1/src/valkey-server /app/valkey/valkey-8.1.1/valkey.conf
Restart=on-failure
WorkingDirectory=/app/valkey/valkey-8.1.1/
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

[Install]
WantedBy=multi-user.target

保存后,重新加载系统配置

# 重新加载 systemd 配置
systemctl daemon-reload
# 设置服务开机启动
systemctl enable valkey
# 启动服务
systemctl start valkey
# 查看状态
systemctl status valkey

检查下,Valkey是否正常运行

ps -ef|grep valkey
# 或者
systemctl status valkey
# 再检查下valkey.service的日志50行,命令
journalctl -u valkey.service -n 50

日志显示
Apr 28 16:46:29 localhost.localdomain systemd[1]: Starting Valkey Server...
Apr 28 16:46:29 localhost.localdomain systemd[1]: Started Valkey Server.

5.查看版本号

cd /app/valkey/valkey-8.1.1/src
./valkey-cli

# 之后登录
127.0.0.1:6379> AUTH ikun2.5amagi
# 查看版本
127.0.0.1:6379> INFO server
# Server
redis_version:7.2.4
server_name:valkey
valkey_version:8.1.1  # 升级成功,版本号在这
valkey_release_stage:ga
redis_git_sha1:00000000
redis_git_dirty:1
redis_build_id:2b527497763ccbb7
server_mode:standalone
os:Linux 5.14.0-503.19.1.el9_5.x86_64 x86_64
arch_bits:64
monotonic_clock:POSIX clock_gettime
multiplexing_api:epoll
gcc_version:11.5.0
process_id:10933
process_supervised:no
run_id:fdd863d73aabf627dbe0a6fef801a39a3321069d
tcp_port:6379
server_time_usec:1745830338090137
uptime_in_seconds:349
uptime_in_days:0
hz:10
configured_hz:10
clients_hz:10
lru_clock:999874
executable:/app/valkey/valkey-8.1.1/src/valkey-server
config_file:/app/valkey/valkey-8.1.1/valkey.conf
io_threads_active:0
availability_zone:
listener0:name=tcp,bind=*,bind=-::*,port=6379
127.0.0.1:6379> 

会看到如下的
在这里插入图片描述

可以,升级成功~👏👏👏

😟😟😟注意:我们没有数据迁移,升级之后,数据也是丢失了。关于数据迁移的内容,在此没有提及,有兴趣的彦祖,可以自行尝试或者评论下迁移的方案一起学习~~

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值