Redis 单机及集群部署

一、Linux单机部署

  1. 下载redis安装包(一般放在/usr/lib目录):wget http://download.redis.io/releases/redis-5.0.9.tar.gz

  2. 解压redis安装包:tar -zxvf redis-5.0.9.tar.gz;

  3. 进入redis目录:cd redis-5.0.9

  4. 编译:make

  5. 安装redis(在redis-5.0.9所在目录)

    cd src

    make install PREFIX=/usr/local/redis

  6. 移动redis.conf到安装目录下指定文件夹

    cd ../

    mkdir /usr/local/redis/etc

    mv redis.conf /usr/local/redis/etc

  7. 启动redis:/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf

  8. redis配置文件默认参数更改及systemctl方式启动可前往Redis 配置文件、常用命令及systemctl启动

 

二、Linux Docker单机部署

1. 搜索镜像:docker search redis;

   2. 拉取镜像:docker pull redis:latest;

   3. 查看本地镜像:docker images;

   4. stack.yml部署文件;

复制代码
version: '3.8'

services:
    # Redis
    redis:
        image: redis:latest
        command: redis-server /etc/redis.conf
        ports:
            - 6379:6379
        volumes: 
            - /ruphie/redis/data:/data
            - /ruphie/redis/conf/redis.conf:/etc/redis.conf
        environment:
            TZ: Asia/Shanghai
复制代码

  5. 创建映射本地目录:mkdir -p /ruphie/redis/data、mkdir -p /ruphie/redis/conf;

  6. 添加配置文件redis.conf:touch redis.conf;

复制代码
# 限制ip连接该redis
#bind 127.0.0.1

# 保护模式
protected-mode no

# 端口
port 6379

# 内存限制
maxmemory 512mb

tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100

# 密码
requirepass 123456

lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
slave-lazy-flush no

# 持久化。开启yes,关闭no(默认)
appendonly yes

appendfilename "appendonly.aof"

# 每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用  
# appendfsync always
# (默认)每秒钟强制写入磁盘一次,在性能和持久化方面做了很好的折中,推荐使用这个配置
appendfsync everysec
# 完全依赖os,性能最好,持久化没保证 
# appendfsync no

no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble no
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes
复制代码

  7. 执行stack.yml文件:docker stack deploy -c stack.yml redis。

 

三、集群演进方式

  1. Redis单机

  2. Redis的主从架构

    A. 优点:主节点提供写服务,从节点提供读服务,可以多从;

    B. 缺点:因为只有一个主节点,主节点会出现单点故障问题;

  3. 哨兵架构

    A. 优点:哨兵监控主从节点,解决主从架构的单点故障问题,通过哨兵发起主从切换;

    B. 缺点:哨兵节点只有一个,会出现哨兵单点故障问题;

  4. 哨兵集群结构

    A. 优点:解决哨兵单点故障问题;

    B. 缺点:由于主节点只有一个,随着业务的数据量提升,写数据及持久化存在响应时间过长问题;

  5. Redis Cluster集群模式

    A. 优点:解决单点主节点数据量大、写入量大产生的性能瓶颈的问题;

 

四、哨兵集群结构部署

 

五、Redis Cluster集群模式部署

  1.安装单个redis;

  2. 修改配置文件redis.conf;

  3. 依次启动所有的单个节点;

   4. 搭建集群

    先开通机器之间端口或者关闭防火墙

    /usr/local/redis/bin/redis-cli --cluster create 127.0.0.1:6801 127.0.0.1:6802 127.0.0.1:6803 127.0.0.2:6801 127.0.0.2:6802 127.0.0.2:6803 127.0.0.3:6801 127.0.0.3:6802 127.0.0.3:6803 --cluster-replicas 2

 

     /usr/local/redis/bin/redis-cli --cluster create 127.0.0.1:6801 127.0.0.1:6802 127.0.0.1:6803 127.0.0.2:6801 127.0.0.2:6802 127.0.0.2:6803 127.0.0.3:6801 127.0.0.3:6802 127.0.0.3:6803 --cluster-replicas 2 -a 123456

    cluster nodes

 

   注意:断电后,只需要把所有节点开启,集群自动恢复

 

posted @ 2021-05-29 11:01  如幻行云  阅读(257)  评论(0编辑  收藏  举报