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
注意:断电后,只需要把所有节点开启,集群自动恢复;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
2019-05-29 MyBatis 动态SQL标签