Redis入门实战(2)-安装
本文主要介绍redis的安装,使用到的软件版本:Java 1.8.0_191、Redis 5.0.8、Centos 7.6。
1、单机安装
1.1、下载并解压redis
下载地址:https://redis.io/download
解压:tar zxvf redis-5.0.8.tar.gz
1.2、编译安装并创建日志目录
cd redis-5.0.8 make
mkdir logs
1.3、修改配置文件redis.conf
logfile "/home/hadoop/app/redis-5.0.8/logs/redis.log"
daemonize on #启动守护进程
requirepass 123456
1.4、启动
cd redis-5.0.8/src
./redis-server ../redis.conf
2、主从模式安装
2.1、规划
ip | 端口 | 主从 |
10.49.196.20 | 6379 | 主 |
10.49.196.21 | 6379 | 从 |
10.49.196.22 | 6379 | 从 |
2.2、在主节点上安装并分发到从节点
10.49.196.20上安装:
cd redis-5.0.8 make
mkdir logs
修改redis.conf:
bind 10.49.196.20 127.0.0.1
logfile "/home/hadoop/app/redis-5.0.8/logs/redis.log" daemonize on requirepass 123456
分发整个包到从节点:
scp -r ./redis-5.0.8 hadoop@10.49.196.21:/home/hadoop/app
scp -r ./redis-5.0.8 hadoop@10.49.196.22:/home/hadoop/app
2.3、修改从节点配置文件redis.conf
10.49.196.21:
bind 10.49.196.21 127.0.0.1
logfile "/home/hadoop/app/redis-5.0.8/logs/redis.log"
daemonize on
requirepass 123456
slaveof 10.49.196.20 6379
masterauth 123456
10.49.196.22:
bind 10.49.196.22 127.0.0.1
logfile "/home/hadoop/app/redis-5.0.8/logs/redis.log"
daemonize on
requirepass 123456
slaveof 10.49.196.20 6379
masterauth 123456
2.4、分别启动各节点
cd redis-5.0.8/src
./redis-server ../redis.conf
3、哨兵模式安装
3.1、规划
服务类型 | ip | 端口 | 主从 |
redis | 10.49.196.20 | 6379 | 主 |
redis | 10.49.196.21 | 6379 | 从 |
redis | 10.49.196.22 | 6379 | 从 |
sentinel | 10.49.196.20 | 26379 | |
sentinel | 10.49.196.21 | 26379 | |
sentinel | 10.49.196.22 | 26379 |
3.2、主从模式安装
哨兵模式时在主从模式的基础上增加哨兵进程;主从模式的安装可以参考1.2
3.3、哨兵配置
在10.49.196.20、10.49.196.21、10.49.196.22上修改sentinel.conf:
daemonize yes logfile "/home/hadoop/app/redis-5.0.8/logs/sentinel.log" sentinel monitor mymaster 10.49.196.20 6379 2 #sentinel monitor <主节点别名> <主节点host> <主节点端口> <票数> sentinel auth-pass mymaster 123456
3.4、启动
先启动各节点的redis服务,再启动各节点的sentinel服务:
cd redis-5.0.8/src ./redis-sentinel ../sentinel.conf
4、集群模式安装
4.1、集群安装
4.1.1、规划
集群安装至少需要6个节点,规划如下:
服务类型 | ip | 端口 |
redis | 10.49.196.20 | 7000 |
redis | 10.49.196.21 | 7000 |
redis | 10.49.196.22 | 7000 |
redis | 10.49.196.20 | 7001 |
redis | 10.49.196.21 | 7001 |
redis | 10.49.196.22 | 7001 |
4.1.2、在10.49.196.20上编译安装并创建日志目录
cd redis-5.0.8 make
mkdir logs
4.1.3、修改redis.conf
bind 10.49.196.20 127.0.0.1 port 7000 logfile "/home/hadoop/app/redis-5.0.8-7000/logs/redis.log" daemonize on requirepass 123456 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 15000 appendonly yes
4.1.4、拷贝并分发redis
在10.49.196.20上重命名redis安装目录并拷贝一个副本:
mv redis-5.0.8 redis-5.0.8-7000 cp -r redis-5.0.8-7000 redis-5.0.8-7001
分发到10.40.196.21、10.40.196.22
scp ./redis-5.0.8-7000 hadoop@10.40.196.21:/home/hadoop/app scp ./redis-5.0.8-7001 hadoop@10.40.196.21:/home/hadoop/app scp ./redis-5.0.8-7000 hadoop@10.40.196.22:/home/hadoop/app scp ./redis-5.0.8-7001 hadoop@10.40.196.22:/home/hadoop/app
4.1.5、修改各redis副本redis.conf中绑定ip、端口、日志路径
最终各配置文件如下
10.49.196.20:/home/hadoop/app/redis-5.0.8-7000/redis.conf:
bind 10.49.196.20 127.0.0.1 port 7000 logfile "/home/hadoop/app/redis-5.0.8-7000/logs/redis.log" daemonize on requirepass 123456 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 15000 appendonly yes
10.49.196.20:/home/hadoop/app/redis-5.0.8-7001/redis.conf:
bind 10.49.196.20 127.0.0.1 port 7001 logfile "/home/hadoop/app/redis-5.0.8-7001/logs/redis.log" daemonize on requirepass 123456 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 15000 appendonly yes
10.49.196.21:/home/hadoop/app/redis-5.0.8-7000/redis.conf:
bind 10.49.196.21 127.0.0.1 port 7000 logfile "/home/hadoop/app/redis-5.0.8-7000/logs/redis.log" daemonize on requirepass 123456 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 15000 appendonly yes
10.49.196.21:/home/hadoop/app/redis-5.0.8-7001/redis.conf:
bind 10.49.196.21 127.0.0.1
port 7001
logfile "/home/hadoop/app/redis-5.0.8-7001/logs/redis.log"
daemonize on
requirepass 123456
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
appendonly yes
10.49.196.21:/home/hadoop/app/redis-5.0.8-7000/redis.conf:
bind 10.49.196.22 127.0.0.1
port 7000
logfile "/home/hadoop/app/redis-5.0.8-7000/logs/redis.log"
daemonize on
requirepass 123456
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
appendonly yes
10.49.196.22:/home/hadoop/app/redis-5.0.8-7001/redis.conf:
bind 10.49.196.22 127.0.0.1
port 7001
logfile "/home/hadoop/app/redis-5.0.8-7001/logs/redis.log"
daemonize on
requirepass 123456
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
appendonly yes
4.1.6、启动各个节点
./redis-server ../redis.conf
4.1.7、创建集群
redis-cli --cluster create 10.49.196.20:7000 10.49.196.20:7001 10.49.196.21:7000 10.49.196.21:7001 10.49.196.22:7000 10.49.196.22:7001 --cluster-replicas 1 -a 123456
创建成功会有如下类似日志:
4.2、集群管理
4.2.1、查看集群
./redis-cli --cluster check 127.0.0.1:7000 -a 123456
也可以登录redis-cli后使用如下命令查看redis集群信息:
127.0.0.1:7000> cluster nodes 127.0.0.1:7000> cluster info
4.2.2、增加节点
./redis-cli --cluster add-node NEW-NODE CLUSTER-NODE [-a PASSWORD]
打算增加10.49.196.10:7000(主)、10.49.196.10:7001(备) 两个节点
./redis-cli --cluster add-node 10.49.196.10:7000 10.49.196.20:7000 -a 123456 ./redis-cli --cluster add-node 10.49.196.10:7001 10.49.196.20:7000 -a 123456
设置主备关系:
./redis-cli -c -h 10.49.196.10 -p 7001 -a 123456 10.49.196.10:7001> cluster replicate e1341ea1fe323abb55f5a0b42129800cb12d46c9
e1341ea1fe323abb55f5a0b42129800cb12d46c9为10.49.196.10:7000的节点id。
操作完成后结果入下:
4.2.3、给新的主节点分配槽位
./redis-cli --cluster reshard 10.49.196.20:7000 -a 123456
执行命令后会让用户选择需移动的槽位数、槽位移动到的节点、从哪个节点移动槽位。
4.2.4、删除节点
从节点可以直接删除,主节点需先把改节点上槽位移动到其他的主节点上,然后再删除。
这里假设要删除新增的两个节点10.49.196.10:7000、10.49.196.21:7001;先需把10.49.196.10:7000上的槽位移到其他的节点:
删除节点,先删除从节点,再删除主节点:
./redis-cli --cluster del-node 10.49.196.10:7001 9f907183de2e165b7de9d130ea228cda5811f88c -a 123456 ./redis-cli --cluster del-node 10.49.196.10:7000 e1341ea1fe323abb55f5a0b42129800cb12d46c9 -a 123456
删除后,又回到3+3的集群:
4.2.4、重启集群
依次停止各个redis节点,再依次启动即可。
5、小结
本文主要介绍了redis的各种模式的安装,单机模式主要用于测试学习,主从模式可用性没有哨兵模式高,集群模式相对较复杂,所有一般实际使用中会使用哨兵模式。
原文地址:https://www.cnblogs.com/wuyongyin/p/12963687.html
- 你真的会玩SQL吗?实用函数方法汇总
- 你真的会玩SQL吗?冷落的Top和Apply
- 你真的会玩SQL吗?你所不知道的 数据聚合
- 你真的会玩SQL吗?简单的数据修改
- 将Error异常日志从普通日志中剥离
- 一步一步在Windows中使用MyCat负载均衡 下篇
- Android实现TCP断点上传,后台C#服务实现接收
- Android如何制作漂亮的自适布局的键盘
- 实用收藏Linux命令备忘
- 0基础搭建Hadoop大数据处理-环境
- 如何实现两台服务器间无密码的传输数据和操作
- 一步到位Linux中安装配置MySQL及补坑
- 我是如何处理大并发量订单处理的 KafKa部署总结
- 一步到位分布式开发Zookeeper实现集群管理
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP从尾到头打印链表实例讲解
- PHP设计模式之外观模式(Facade)入门与应用详解
- PHP实现简单用户登录界面
- 使用python批量修改XML文件中图像的depth值
- PHP数组对象与Json转换操作实例分析
- PHP防止sql注入小技巧之sql预处理原理与实现方法分析
- php实现微信公众号企业转账功能
- 实例分析10个PHP常见安全问题
- laravel清除视图缓存的代码
- Smarty模板类内部原理实例分析
- laravel框架与其他框架的详细对比
- ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写办法
- PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
- PHP实现简单登录界面
- PHP创建XML接口示例