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 @   如幻行云  阅读(301)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
历史上的今天:
2019-05-29 MyBatis 动态SQL标签
点击右上角即可分享
微信分享提示