Linux下安装Redis安装、修改端口、修改密码、常用命令(基本类型的存储和获取、删除)、持久化(AOF、RDB)、主从复制
我将对以上问题进行解答

1. 安装
包管理器安装,这种方式安装和后续更新都比较方便。(选择自己的操作系统去MobXterm输入命令)

Ubuntu/Debian:

① 更新软件包列表
sudo apt update

② 安装Redis
sudo apt install redis-server -y

③ 查看安装版本
redis-server --version

CentOS/RHEL: 

① 安装EPEL仓库
sudo yum install epel-release -y

② 安装Redis
sudo yum install redis -ys

③ 查看安装版本
redis-server --version

2. 修改端口 + 密码
① 先备份原配置文件
sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.bak
② 编辑配置文件
sudo vim /etc/redis/redis.conf
③ 在 vim 中找到以下行并修改(按 i 进入编辑模式):
#修改端口(默认6379,改为你想要的,比如 16379)
port 16379
#设置密码(找到 # requirepass foobared,去掉#并修改)
requirepass YourStrongPassword123
修改完成后,按 ESC,输入 :wq 保存退出。
(如果觉得在编辑器太难找到 我们也可以去左边/etc/redis/redis.conf找到这个文件,双击用记事本打开 然后Ctrl+F快捷搜索 修改完成了之后点击Ctrl+S保存 点击Yes)

④ 重启Redis
sudo systemctl restart redis-server
检查端口监听
sudo netstat -lntp | grep redis
应该看到:
tcp 0 0 127.0.0.1:16379 … LISTEN …

测试连接
redis-cli -p 16379 -a ‘YourStrongPassword123’ PING
应该返回:
PONG

3. 常用命令(基本类型的存储和获取、删除)
① 连接到Redis
redis-cli -p 16379 -a ‘zsl12082240@’

#String
SET name “张三”
GET name

#Hash
HSET user:1 name “李四” age 25
HGETALL user:1

#List
LPUSH list “A” “B” “C”
LRANGE list 0 -1

#Set
SADD set 1 2 3 3 4
SMEMBERS set

#Sorted Set
ZADD zset 90 “语文” 85 “数学” 95 “英语”
ZREVRANGE zset 0 -1 WITHSCORES

#=== 通用命令 ===
#查看所有key
KEYS *

#查看key类型
TYPE username

#查看key是否存在
EXISTS username

#删除
DEL username

4.持久化(AOF、RDB)

RDB:
#1. 连接到redis
redis-cli -p 16379 -a ‘YourStrongPassword123’ --raw

#2. 写入一些数据
SET user:1 “张三”
SET user:2 “李四”
HSET user:3 name “王五” age 30

#3. 手动触发RDB保存
BGSAVE
#返回 Background saving started

#4. 查看RDB文件
#退出redis-cli,在shell中执行:exit
sudo ls -la /var/lib/redis/dump.rdb

#5. 查看最后保存时间
redis-cli -p 16379 -a ‘YourStrongPassword123’ LASTSAVE

AOF:
AOF 日志持久化
第一步:检查当前AOF状态
redis-cli -p 16379 -a ‘YourStrongPassword123’ CONFIG GET appendonly
#应该返回 “no”(默认关闭)

第二步:临时开启AOF(测试用)
redis-cli -p 16379 -a YourStrongPassword123’ CONFIG SET appendonly yes
#返回 OK
#再次确认
redis-cli -p 16379 -a ‘YourStrongPassword123’ CONFIG GET appendonly
#返回 “yes”

第三步:写入数据,观察AOF文件
redis-cli -p 16379 -a ‘YourStrongPassword123’ --raw

SET aof_test1 “AOF测试数据1”
SET aof_test2 “AOF测试数据2”
LPUSH myqueue “消息1” “消息2” “消息3”
HSET product:1 name “苹果” price 5.99

#退出:exit

第四步:查看AOF文件
#查看AOF文件是否存在
sudo ls -lh /var/lib/redis/appendonlydir/

#查看AOF文件内容(能看到记录的写命令)
sudo cat /var/lib/redis/appendonlydir/*.incr.aof

最后验证数据持久化
#1. 重启Redis(测试数据是否持久化)
sudo systemctl restart redis-server

#2. 重新连接,检查数据
redis-cli -p 16379 -a ‘YourStrongPassword123’ --raw GET aof_test1
#应该返回:测试AOF数据1

#3. 检查所有数据
redis-cli -p 16379 -a ‘YourStrongPassword123’ --raw KEYS “*”

5. 主从复制
第一步:查看当前Redis配置
#查看当前Redis的IP地址(主节点IP)
ifconfig 或 hostname -I
假设你的服务器IP是 172.26.0.2(记下这个IP,后面要用)

第二步:准备主节点配置(已存在)
主节点就是你正在运行的Redis(端口 16379),配置文件中已经设置了密码:
#确认主节点配置
redis-cli -p 16379 -a ‘YourStrongPassword123’ CONFIG GET requirepass
#返回:YourStrongPassword123

第三步:创建从节点配置文件

#复制主配置文件作为从节点配置
sudo cp /etc/redis/redis.conf /etc/redis/redis-slave.conf

#编辑从节点配置文件
sudo vim /etc/redis/redis-slave.conf

修改以下配置:
#1. 修改端口(不能和主节点冲突)
port 16380

#2. 修改pid文件
pidfile /var/run/redis_16380.pid

#3. 修改日志文件
logfile /var/log/redis/redis_16380.log

#4. 修改RDB文件名(避免覆盖主节点的)
dbfilename dump_16380.rdb

#5. 设置密码(和主节点一致)
requirepass zsl12082240@

#6. 设置访问主节点的密码
masterauth YourStrongPassword123

#7. 指定主节点(关键!)
replicaof 127.0.0.1 16379
#如果是远程服务器,用实际IP:replicaof 172.26.0.2 16379

#8. 从节点只读(默认就是yes,可以确认一下)
replica-read-only yes

(如果嫌一个个改太麻烦
可以使用以下的命令一键修改配置
sudo sed -i
-e ‘s/^port 6379/port 16380/’
-e ‘s/^pidfile /var/run/redis/redis-server.pid/pidfile /var/run/redis_16380.pid/’
-e ‘s/^logfile /var/log/redis/redis-server.log/logfile /var/log/redis/redis_16380.log/’
-e ‘s/^dbfilename dump.rdb/dbfilename dump_16380.rdb/’
-e ‘s/^# requirepass foobared/requirepass zsl12082240@/’
-e ‘/^# masterauth /a masterauth zsl12082240@’
-e ‘/^# replicaof /a replicaof 127.0.0.1 16379’
/etc/redis/redis-slave.conf

第四步:启动从节点
#用指定配置文件启动从节点
sudo redis-server /etc/redis/redis-slave.conf

#检查是否启动成功
sudo netstat -lntp | grep redis
#应该看到:
#tcp 0 0 127.0.0.1:16379 … LISTEN … # 主节点
#tcp 0 0 127.0.0.1:16380 … LISTEN … # 从节点

第五步:验证主从复制状态
在主节点上查看
bash
redis-cli -p 16379 -a ‘YourStrongPassword123’ INFO replication
应该看到:
#Replication
role:master
connected_slaves:1
slave0:ip=127.0.0.1,port=16380,state=online,offset=xxx,lag=0

在从节点上查看
redis-cli -p 16380 -a ‘YourStrongPassword123’ INFO replication
应该看到:
#Replication
role:slave
master_host:127.0.0.1
master_port:16379
master_link_status:up
master_last_io_seconds_ago:1

第六步:测试数据同步
在主节点写入数据
redis-cli -p 16379 -a ‘zsl12082240@’ --raw

SET testkey “主从同步测试数据”
HSET user:1001 name “张三” age 25
LPUSH messages “消息1” “消息2”
在从节点读取数据
redis-cli -p 16380 -a ‘zsl12082240@’ --raw

GET testkey
#应该返回:主从同步测试数据

HGETALL user:1001
#应该返回:name 张三 age 25

LRANGE messages 0 -1
#应该返回:消息2 消息1

KEYS “*”
#应该看到主节点写入的所有key
✅ 数据同步成功!

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐