1. 安装依赖环境
yum install -y gcc-c++ autoconf automaker
2. 升级GCC
这里说明一下,在编译之前:在编译之前需要升级gcc的版本,默认情况下yum安装的gcc版本是4.8.5,由于版本过低,在编译时会报错,因此,我们需要先升级GCC
# 安装scl
yum -y install centos-release-scl
# 安装9版本的gcc、gcc-c++/gdb工具链(toolchian)
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
# 临时覆盖系统原有的gcc引用
scl enable devtoolset-9 bash
# 查看gcc版本
gcc -v
# 注意:scl命令启用只是临时的,退出xshell或者重启就会恢复到原来的gcc版本。
# 如果要长期生效的话,执行如下:
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
3. 在线下载
wget https://download.redis.io/releases/redis-6.2.5.tar.gz
4. 解压
tar -zxvf redis-6.2.5.tar.gz
5. 编译
# 切换到解压目录
cd redis-6.2.5/
# 编译redis
make
6. 安装
# 创建redis的安装目录
mkdir -p /usr/local/redis
# 将Redis安装到指定目录
make PREFIX=/usr/local/redis/ install
7. 前台启动
cd /usr/local/redis/bin
./redis-server
# 退出redis
ctrl + c
如果只是为了测试,前台启动即可!
如果想深入了解,请继续阅读!
8. 后台启动
cd /app/redis-6.2.5/
cp redis.conf /usr/local/redis/bin
cd /usr/local/redis/bin/
vim redis.conf
# 开启守护模式
224行 daemonize no 改为 yes
# 设置密码901行 默认无密码
requirepass 123456
# 指定配置文件启动
./redis-server ./redis.conf
# 查看redis进程
ps -ef |grep redis
# 结束redis进程
kill -9 redis进程号
9. 配置开机启动
在系统服务目录里创建redis-server.service文件
vim /etc/systemd/system/redis-server.service
[Unit]
Description=The redis-server Process Manager
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
[Install]
WantedBy=multi-user.target
# 重新加载系统服务
systemctl daemon-reload
# 开机启动
systemctl enable redis-server.service
客户端远程连接
Redis Client On Error: Error: connect ECONNREFUSED 192.168.159.105:6379 Config right?
如果遇到此异常,请跳转即可解决
https://gblfy.blog.csdn.net/article/details/120062118
10. 常用命令
# 重新加载系统服务
systemctl daemon-reload
# 开机启动
systemctl enable redis-server.service
# 关闭redis-server
systemctl stop redis-server.service
# 启动redis-server
systemctl start redis-server.service
# 重新启动redis-server
systemctl restart redis-server.service
# 查看redis-server运行状态
systemctl status redis-server.service
11. 评析
redis单机
优点
部署简单
成本低,高性能,单机不能同步数据,数据天然一致性
缺点:
可靠性保证不是很好,单点故障
单机高性能受限于CPU的处理能力,因为redis的操作是单线程的
结论:
实际开发中,redis必然是高可用的,所以单机模式并不似我们的终点,我们需要对目前redis架构进行升级,先整一个主从复制读写分裂的环境。