千家信息网

Ubuntu Server 18.04 配置 Redis 单机主从

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,【目标】配置 redis 单机主从,6378 端口连接 master,6379 端口连接 slave,master 可读写,slave 只读。【安装及测试】安装sudo apt updatesudo
千家信息网最后更新 2025年01月20日Ubuntu Server 18.04 配置 Redis 单机主从

【目标】

  配置 redis 单机主从,6378 端口连接 master,6379 端口连接 slave,master 可读写,slave 只读。


【安装及测试】

  • 安装

sudo apt updatesudo apt install redis
  • 测试(以下为正常)

walker@Ubuntu:~$ redis-cli127.0.0.1:6379> pingPONG
  • 使用 systemctl 管理 redis

# 查看状态$ systemctl status redis# 启动redis$ systemctl start redis#重启redis$ systemctl restart redis# 停止redis$ systemctl stop redis# 将 redis 服务加入开机启动$ systemctl enable redis# 禁止开机启动$ systemctl disable redis


【配置单机主从】

  • 创建目录并拷贝配置文件

mkdir -p  /data/redis/{6378-master,6379-slave}/{conf,db,log}cp /etc/redis/redis.conf /data/redis/6378-master/conf/cp /etc/redis/redis.conf /data/redis/6379-slave/conf/
  • 编辑 /data/redis/6378-master/conf/redis.conf 文件,修改或添加如下内容

daemonize yes pidfile /data/redis/6378-master/redis.pid bind 0.0.0.0port 6378 logfile /data/redis/6378-master/log/redis.logdir /data/redis/6378-master/db/
  • 编辑 /data/redis/6379-slave/conf/redis.conf 文件,修改或添加如下内容

daemonize yes pidfile /data/redis/6379-slave/redis.pid bind 0.0.0.0port 6379 logfile /data/redis/6379-slave/log/redis.logdir /data/redis/6379-slave/db/ slaveof 127.0.0.1 6378
  • 关闭并禁用系统 redis

sudo systemctl stop redissudo systemctl disable redis
  • 启动 redis 实例

sudo redis-server /data/redis/6378-master/conf/redis.conf    # 启动 mastersudo redis-server /data/redis/6379-slave/conf/redis.conf    # 启动 slave
  • 查看实例启动情况

# ps aux | grep redisroot  6069  0.0  0.1  50148  3952  ?        Ssl  03:15 0:00 redis-server 0.0.0.0:6378root  6451  0.0  0.0  50148  3852  ?        Ssl  03:27 0:00 redis-server 0.0.0.0:6379root  6457  0.0  0.0  13136  1084  pts/0    S+   03:28 0:00 grep --color=auto redis
  • 关闭实例

redis-cli -h 127.0.0.1 -p 6378 shutdown    # 关闭 masterredis-cli -h 127.0.0.1 -p 6379 shutdown    # 关闭 slave


【持久化】

  默认已启用了 rdb 方式的持久化。(/data/redis/6378-master/conf/redis.conf)

# save  # save ""save 900 1   # 若 900 秒内有 1 个更改则将内存中的数据快照写入磁盘 save 300 10     # 若 300 秒内有 10 个更改则将内存中的数据快照写入磁盘 save 60 10000   # 若 60  秒内有 10000 个更改则将内存中的数据快照写入磁盘

  walker 猜想实现方式应该是时间从小到大:设置定时器监测,60 秒内有 10000 个更改则保存,300 秒内有 10 个更改则保存,900 秒内有 1 个更改则保存。


【最大内存】

# maxmemory # 1Gmaxmemory 1073741824


【查看版本】

# redis-server -v Redis server v=4.0.9 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=1bc80a08306a3efd


【查看配置】

$redis-cli -h 127.0.0.1 -p 6378 -a "mypass"127.0.0.1:6378> info


【配置开机启动】

  • 参考:ubuntu-18.04 设置开机启动脚本

  • 创建文件:/etc/systemd/system/rc-local.service

  • 在 rc-local.service 里面添加如下内容

[Unit]Description=/etc/rc.local CompatibilityConditionPathExists=/etc/rc.localAfter=network.target[Service]Type=forkingExecStart=/etc/rc.local startTimeoutSec=0StandardOutput=ttyRemainAfterExit=yesSysVStartPriority=99[Install]WantedBy=multi-user.target
  • 创建文件:/etc/rc.local

  • 在 rc.local 里面添加如下内容

#!/bin/bashredis-server /data/redis/6378-master/conf/redis.confredis-server /data/redis/6379-slave/conf/redis.conf/home/walker/Python3Project/proxy_gather/start.shexit 0
  • 给 rc.local 添加可执行权限

sudo chmod 754 /etc/rc.local
  • 启用服务(开机自启动)

sudo systemctl enable rc-local# 等价于ln -s /etc/systemd/system/rc-local.service /etc/systemd/system/multi-user.target.wants/
  • 启动服务并检查状态

sudo systemctl start rc-local.servicesudo systemctl status rc-local.service
  • 重启服务器检查是否能够开机启动


*** walker ***


0