VMWare Centos7虚拟机安装并运行Redis

本文介绍了如何在VMWare上的Centos7虚拟机中安装和运行Redis,包括设置密码、数据持久化以及解决在安装过程中可能遇到的问题,如配置外网访问和处理jemalloc头文件缺失的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

操作系统CentOS-7-x86_64-Minimal-2009
Redisredis-6.2.6.tar.gz

  • 安装并运行

# Step1. 安装gcc编译器,在Step5用到
yum install gcc -y

# Step2. 下载压缩包
wget https://download.redis.io/releases/redis-6.2.6.tar.gz

# Step3. 解压
tar -zxvf redis-6.2.6.tar.gz

# Step4. 把解压出来的目录移到/usr/local/redis6
mv redis-6.2.6 /usr/local/redis6

# Step5. 进入目录/usr/local/redis6,开始编译
make

# Step6. 修改配置redis.conf,使redis进程在后台运行(在systemd启动时此配置不会生效)
daemonize yes

# Step7. 如果Step5编译成功,将在当前目录出现,添加“--daemonize yes”后台运行
./src/redis-server

# Step8. 使用redis-cli尝试操作
./src/redis-cli

  • 注册服务自启动

# Step9. 在目录/lib/systemd/system下创建redis.service,内容如下:
[Unit]
Description=redis
After=network.target

[Service]
Type=forking
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
ExecStart=/usr/local/redis6/src/redis-server /usr/local/redis6/redis.conf --daemonize yes
ExecStop=/usr/local/redis6/src/redis-cli -p 6379 shutdown
PrivateTmp=false

[Install]
WantedBy=multi-user.target

# Step10. 重新加载
systemctl daemon-reload

# Step11. 允许redis.service自启动
systemctl enable redis.service

# Step12. 重启
reboot

# Step13. 重启后,查看redis服务状态
systemctl status redis.service

  • 设置外网访问

        同样也是需要打开防火墙端口,另外还需要修改redis.conf配置,默认只允许本机访问。

# Step14. 更新防火墙,开放6379端口
firewall-cmd --add-port=6379/tcp --permanent

# Step15. 查看6379端口开放情况
firewall-cmd --query-port=6379/tcp

# Step16. 修改/usr/local/redis6/redis.conf配置
bind 127.0.0.1 ::1 -> bind * -::*
protected-mode yes -> protected-mode no

# Step17. 重启服务后,尝试连接
systemctl start redis.service

设置密码

        通过修改redis.conf文件中的requirepass来设置密码。

# Step18. 修改配置文件redis.conf
requirepass yourpassword

数据持久化

        redis将数据放到内存中,默认情况下是不持久化的,意味着如果断电或重启,数据将丢失。为将数据持久化,redis提供了两套方案:RDB和AOF,两种持久化机制的比较可以看这篇文章《详解Redis中两种持久化机制RDB和AOF》。默认只需要配置一种。

# Step19. RDB配置
# 修改redis.conf中“SNAPSHOTTING”的配置
# 比如下面配置的意思是每过3600s或有一个key被修改就备份一次
save 3600 1

# Step20. AOF配置
# 修改redis.conf中“APPEND ONLY MODE”的配置
# 有三种取值always/everysec/no
appendonly everysec

        有一个有趣的地方,如果RDB和AOF两种机制的配置都enable的话,会发生什么呢?博主没有亲自试过,按照文章《黑猴子的家:Redis 持久化 之 AOF 和 RDB 同时开启,Redis听谁的?》的说法,两种持久化方式都会生效,但恢复时默认使用AOF的备份文件

遇到的问题

如果在没有安装gcc的情况下运行了make,可能会出现这种提示:

jemalloc/jemalloc.h: No such file or directory。

 安装gcc后,可以执行如下命令进行重新编译。

make distclean && make

引用文献:

《详解Redis中两种持久化机制RDB和AOF》

《黑猴子的家:Redis 持久化 之 AOF 和 RDB 同时开启,Redis听谁的?》

《redis 安装报错 jemalloc/jemalloc.h: No such file or directory》


以上就是本文的全部内容,其中大部分都可以在配置文件中找到详细的配置介绍,所以更推荐大家在学习新工具的时候,看下配置文件的描述,会有更全面的认识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值