1.linux下redis安装及部署
2.常用命令及简单配置注解
redis-server redis.conf: 启动redis服务,并指定配置文件
redis-cli -p 端口号 :按照端口号启动redis 客户端
pkill redis-server: 关闭redis服务
redis-cli shutdown: 关闭redis客户端
netstat -tunpl|grep 6379: 查看redis 默认端口号6379占用情况
redis.conf: redis的配置文件,可以有多个
(转)Redis 3.2.x版本 redis.conf 的配置文件参数详解
bind:后边链接监听 的IP地址 ,只有链接的地址才可以访问redis服务器,注释掉代表谁都可以连接服务器
daemonize :是否守护进程启动
protected-mode:yes或no,保护模式,yes的话连接服务器时需要密码
prot:启动端口号
timeout :客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
dbfilename :指定数据持久化保存文件,建议多个服务器按不同启动端口号修改
3.主从复制
在主服务器中写入信息,会同步到从服务器上
创建多个不同端口的配置文件,实现01主服务器,02,03为01的从服务器
- 配置文件添加
在redis02.conf,redis03.conf中添加
slaveof 01.conf所在服务器ip 01.conf中配置的端口
如下图所示:
- 命令行添加
启动02,03服务器,执行redis-cli -p 02配置端口号进入控制台,
输入(slaveof 01.conf所在服务器ip 01.conf中配置的端口)即可
查看挂接状态,在进入01控制台,输入info replication,可以看到从服务器信息,ip,端口等
4.哨兵集群监听主从结构
配置文件为sentinel.conf,同redis.conf可配置多个,必须配置多个才会有用处,其他配置信息与redis.conf差不多,只是需要添加一个
sentinel monitor mymaster 监听redis主服务器ip redis主服务器端口
mymaster :可自定义其他名称,判断多个哨兵是否一个集群的依据
需要注意一个哨兵集群要配置同一个mymaster名称
效果:
哨兵监听01服务器,当01服务器宕机时,哨兵集群会投票选举02或者03充当主服务器,使redis服务正常运行,当01服务器重新恢复后,哨兵会将01重新挂接到新选举的主服务器,使01服务器作为新的从服务器存在
5.redis-cluster的集群
结构特点:
- 所有的redis节点彼此互联,底层依赖二进制传输协议的,优化传输速度.(集群的基础)。
- 节点的fail是通过集群中超过半数的节点检测失效时才生效。
- 客户端连接任意一个节点,都可以向集群传递存储数据,获取数据的命令,数据会在集群内部做节点的连接跳转。
- redis-cluster把所有的物理节点映射到[0-16383]slot上(不一定是平均分配),cluster 负责维护node<->slot<->value。
- Redis集群预分好16384个槽道,当需要在 Redis 集群中放置一个 key-value 时,根据 (取余,CRC16()散列计算)获取槽道值,决定将一个key放到哪个节点槽道中。
新集群需要修改redis.conf配置文件,以上边配置文件为基础进行修改
修改位置 :
appendonly yes
appendfilename "appendonly建议添加启动端口号.aof"
cluster-enabled yes
cluster-config-file nodes建议添加启动端口号.conf
redis5.0之前版本需要添加ruby语言进行集群的命令,而5.0版本的redis-cli中自带集群命令,可用redis-cli --cluster help查看帮助命令
[redis@bogon 6379]$ redis-cli --cluster help
Cluster Manager Commands:
create host1:port1 ... hostN:portN
--cluster-replicas <arg>
check host:port
--cluster-search-multiple-owners
info host:port
fix host:port
--cluster-search-multiple-owners
reshard host:port
--cluster-from <arg>
--cluster-to <arg>
--cluster-slots <arg>
--cluster-yes
--cluster-timeout <arg>
--cluster-pipeline <arg>
--cluster-replace
rebalance host:port
--cluster-weight <node1=w1...nodeN=wN>
--cluster-use-empty-masters
--cluster-timeout <arg>
--cluster-simulate
--cluster-pipeline <arg>
--cluster-threshold <arg>
--cluster-replace
add-node new_host:new_port existing_host:existing_port
--cluster-slave
--cluster-master-id <arg>
del-node host:port node_id
call host:port command arg arg .. arg
set-timeout host:port milliseconds
import host:port
--cluster-from <arg>
--cluster-copy
--cluster-replace
help