公司迁移服务器,目标是 redhat 的系统,记录下过程
[root@localhost ~]# yum install wget
[root@localhost ~]# wget http://download.redis.io/releases/redis-6.0.5.tar.gz
tar -zxvf redis-6.0.5.tar.gz
cd redis-6.0.5
# 编译 并指定安装目录
make PREFIX=/usr/local/redis6.0.5 install
In file included from server.c:30:0:
server.h:1045:5: error: expected specifier-qualifier-list before ‘_Atomic’
_Atomic unsigned int lruclock; /* Clock for LRU eviction */
^
server.c: In function ‘serverLogRaw’:
server.c:1028:31: error: ‘struct redisServer’ has no member named ‘logfile’
int log_to_stdout = server.logfile[0] == '\0';
^
server.c:1031:23: error: ‘struct redisServer’ has no member named ‘verbosity’
if (level < server.verbosity) return;
^
server.c:1033:47: error: ‘struct redisServer’ has no member named ‘logfile’
fp = log_to_stdout ? stdout : fopen(server.logfile,"a");
^
server.c:1046:47: error: ‘struct redisServer’ has no member named ‘timezone’
nolocks_localtime(&tm,tv.tv_sec,server.timezone,server.daylight_active);
^
server.c:1046:63: error: ‘struct redisServer’ has no member named ‘daylight_active’
nolocks_localtime(&tm,tv.tv_sec,server.timezone,server.daylight_active);
^
server.c:1049:19: error: ‘struct redisServer’ has no member named ‘sentinel_mode’
if (server.sentinel_mode) {
# 查看gcc版本是否在5.3以上,centos7.6默认安装4.8.5
gcc -v
# 升级gcc到5.3及以上,如下升级到gcc 9.3:
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
# 需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。
#如果要长期使用gcc 9.3的话:
echo "source /opt/rh/devtoolset-9/enable" >>~/.bash_profile
#应用
source ~/.bash_profile
以下其他版本同理,修改devtoolset版本号即可。
# 编译出错时,清出编译生成的文件
make distclean
# 编译 并指定安装目录
make PREFIX=/usr/local/redis6.0.5 install
INSTALL redis-sentinel
CC redis-cli.o
LINK redis-cli
CC redis-benchmark.o
LINK redis-benchmark
INSTALL redis-check-rdb
INSTALL redis-check-aof
Hint: It's a good idea to run 'make test' ;)
INSTALL install
INSTALL install
INSTALL install
INSTALL install
INSTALL install
make[1]: Leaving directory `/usr/local/redis-6.0.5/src'
## 创建配置文件目录
mkdir -p /usr/local/redis6.0.5/etc
cp ~/redis-6.0.5/redis.conf /usr/local/redis6.0.5/etc
# 将bin目录添加到环境变量中
export PATH=$PATH:/usr/local/redis6.0.5/bin
# 启动 redis服务
redis-server /usr/local/redis6.0.5/etc/redis.conf
# 关闭服务
redis-cli shutdown
sudo vi /usr/local/redis6.0.5/etc/redis.conf
port 6379 # 默认的端口
dir ./ # 持久化文件存放路径
daemonize no=>yes # 以守护进程启动
supervised no=>systemd #以systemd控制启动
pidfile /var/run/redis_6379.pid # pid文件路径
logfile "" # 日志文件路径
bind 0.0.0.0 # 远程连接
vi /etc/systemd/system/redis.service
[Unit]
Description=Redis6.0.5
After=redis6.service
[Service]
Type=forking
ExecStart=/usr/local/redis6.0.5/bin/redis-server /usr/local/redis6.0.5/etc/redis.conf
ExecStop=/usr/local/redis6.0.5/bin/redis-cli shutdown
ExecReload=/bin/kill -s HUP $MAINPID
PrivateTmp=true
RestartSec=10
# The UNIX user and group to execute PostgreSQL as
User=redis
Group=db
[Install]
WantedBy=multi-user.target
# 重新加载配置文件
systemctl daemon-reload
# 添加执行权限
chmod 754 /usr/systemd/system/redis.service
systemctl disable redis.service
systemctl enable redis.service
systemctl status redis.service
systemctl start redis.service
systemctl restart redis.service
我这里没有遇到过端口问题,但还是先记录吧。
firewall-cmd --add-port=6379/tcp --permanent #永久添加6379端口例外(全局)
firewall-cmd --remove-port=6379/tcp --permanent #永久删除6379端口例外(全局)
firewall-cmd --reload
redis-cli -h 192.168.43.32 -p 6379
列举 Redis 常用的配置项: daemonize 如果需要将 Redis 服务以守护进程在后台运行,则把该项的值改为 yes pidfile 配置多个 pid 的地址,默认在/var/run/redis/pid bind 绑定 ip,设置后只接受来自该 ip 的请求 port 监听端口,默认是 6379 timeout 客户端连接超时的设定,单位是秒 loglevel 分为 4 级,debug、verbose、notice、warning logfile 配置 log 文件地址 databases 设置数据库的个数,默认使用的数据库为 0 save 设置 redis 进行数据库镜像的频率 rdbcompression 在进行镜像备份时,是否进行压缩 Dbfilename 镜像备份文件的文件名 Dir 数据库镜像备份文件的存放路径 Slaveof 设置数据库为其他数据库的从数据库 Masterauth 主数据库连接需要的密码验证 Requirepass 设置登录时,需要使用的密码 Maxclients 设置同时连接的最大客户端数量 Maxmemory 设置 redis 能够使用的最大内存 Appendonly 开启 append only 模式 Appendfsync 设置对 appendonly.aof 文件同步的频率 vm-enabled 是否开启虚拟内存支持 vm-swap-file 设置虚拟内存的交换文件路径 vm-max-memory 设置 redis 能够使用的最大虚拟内存 vm-page-size 设置虚拟内存的页大小 vm-pages 设置交换文件的总的 page 数量 vm-max-threads 设置 VMIO 同时使用的线程数量 Glueoutputbuf 把小的输出缓存存放在一起 hash-max-zipmap-entries 设置 hash 的临界值 Activerehashing 重新 hash
启动后如果使用 RedisDesktopManager 连接是不成功的,还需要设置密码和设置绑定
#修改配置
cd /usr/local/redis-4.0.11/
vim redis.conf
修改里面的 Requirepass yourpassword bind 0.0.0.0
重新启动 Redis 即可!!!
停服务、删文件即可!
#查看进程
ps aux |grep redis
#杀掉进程
kill -9 进程号
#查看相关文件
find / -name "redis"
#删除文件
rm -rf 文件
https://ncc0706.github.io/2020/05/21/db/redis/02.centos7-install-redis.6.0.3/