redis基础使用

redis理论

Redis 并不能保证数据的强一致性. 这意味这在实际中集群在特定的条件下可能会丢失写操作.
第一个原因是因为集群是用了异步复制
redis命令
redis-cli -c -h host -p port -a password
host:远程redis服务器host
port:远程redis服务端口
password:远程redis服务密码(无密码的的话就不需要-a参数了)
集群状态
redis-cli -h localhost -p 7001 -a JD2020 cluster info
集群节点信息
redis-cli -h localhost -p 7001 -a JD2020 cluster nodes
节点内存、cpu、key数量等信息(每个节点都需查看)
redis-cli -h localhost -p 7001 -a JD2020 info
-----------------------
查看队列消息:

redis集群(一主两从,三哨兵)

node1
node2
node3
①node1:redis.conf
#bind 127.0.0.1  这一行注释掉就可以了,才能实现不同机器间的通信
daemonize no 改成 yes 意思是后台运行
logfile "/usr/local/src/redis-5.0.5/log/server.log" 这一行是配置redis的日志文件
masterauth "123456" 配置密码为123456
requirepass "123456" 配置密码为123456

②node2/node3:redis.conf
#bind 127.0.0.1  这一行注释掉就可以了,才能实现不同机器间的通信
daemonize no 改成 yes 意思是后台运行
logfile "/usr/local/src/redis-5.0.5/log/server.log" 这一行是配置redis的日志文件
masterauth "123456" 配置密码为123456
requirepass "123456" 配置密码为123456
slaveof node1 6379 依赖的主机IP和端口号

③node1/node2/node3 启动
src/redis-server redis.conf
④node1/node2/node3 验证role  -c 集群启动
redis-cli -c -h node1 -p 6379
node1>auth 123456
node1>role
node1>redis-cli -c -h node2 -p 6379
node1>auth 123456
node1>role
⑤如果node1:master挂了,手动切换
kill  -9  node1:redis
node1>redis-cli -c -h node1 -p 6379
Connection refused  连接拒绝
node2>redis-cli -c -h node2 -p 6379
node2>auth 123456
node2>role   显示 slave
node2>slaveof no one
node2>role   显示 master
node2>keys *
node2>set key2 'vv2'  显示ok,
但是,如果此时连接node3的redis
node3>redis-cli -c -h node3 -p 6379
node3>auth 123456
node3>keys *    不会显示key2 ,还是显示原先的数据。
node3>info replication   还是显示master_host是node1
node3>slaveof node2 6379 
node3>keys *    会显示key2,master_host是node2
此为临时手动切换mater的方法。
⑥哨兵模式配置
node1/node2/node3: sentinel.conf
proteed-mode no  去掉注释
sentinel monitor mymaster node1 6379 2  这里配置的都是主机器的IP地址
sentinel auth-pass mymaster 123456 这里是配置集群的密码
node1/node2/node3启动:
src/redis-sentinel sentinel.conf &  后台启动ct
⑦测试
kill -9 node1:redis
等待1分钟:
node2>redis-cli -c -h node2 -p 6379
node2>role
node3>redis-cli -c -h node3 -p 6379
node3>role
其中有一个一定是master。
重启node1 的redis / sentinel
node1>redis-cli -c -h node1 -p 6379
node1>role    1)显示 slave   2)显示master的IP

redis集群

整合成集群:
/export/redis-cluster/src/redis-cli -a JD2020 --cluster create  ip1:7001 ip2:7001 \
ip3:7001 ip1:7002 ip2:7002 ip3:7002 --cluster-replicas 1
yes
–replicas 1 表示我们希望为集群中的每个主节点创建一个从节点

redis.conf
#密码 
requirepass password 
#集群间传递密码 
masterauth password 
#绑定IP,会自动替换本机ip 
bind 0.0.0.0
#关闭保护模式 
protected-mode no 
#集群配置信息 
cluster-config-file /export/common/redis-cluster/conf/7001-node.conf 
# Accept connections on the specified port, default is 6379 (IANA #815344). 
# If port 0 is specified Redis will not listen on a TCP socket. 
port 6379
pidfile /export/redis-cluster/redis_7001.pid
cluster-enabled yes 
#cluster-node-timeout  5000              
#请求超时  设置5秒够了 
appendonly  yes 
dir /export/data/redis-cluster/7001
logfile /export/redis-cluster/logs/redis-7001.log
----------------------------------------------
客户端连接
redis-cli -c -h localhost -p port -a password

redis安装

规划:三节点,4c8g
1.第一个节点
在各个节点创建如下目录:
mkdir -p /export/common/redis-cluster/conf/

mkdir -p /export/data/redis-cluster/7001
mkdir -p /export/data/redis-cluster/7002
mkdir -p /export/redis-cluster/logs/

解压redis
tar xvf redis-5.05..tar.gz -C/export/packages/
编译redis
cd /export/packages/redis-5.0.5
make && make install
编辑redis.conf  
vim /export/common/redis-cluster/conf/redis_7001.conf     host_ip要改
---------------------------------------------EOF
#密码 
requirepass JD2020 
#集群间传递密码 
masterauth JD2020 
#绑定IP,会自动替换本机ip 
bind HOST_IP 127.0.0.1 
#关闭保护模式 
protected-mode no 
#集群配置信息 
cluster-config-file /export/common/redis-cluster/conf/7001-node.conf 
# Accept connections on the specified port, default is 6379 (IANA #815344). 
# If port 0 is specified Redis will not listen on a TCP socket. 
port 7001 
pidfile /export/redis-cluster/redis_7001.pid
cluster-enabled yes 
#cluster-node-timeout  5000              
#请求超时  设置5秒够了 
appendonly  yes 
dir /export/data/redis-cluster/7001
logfile /export/redis-cluster/logs/redis-7001.log
--------------------------------------------EOF
vim /export/common/redis-cluster/conf/redis_7002.conf     host_ip要改
---------------------------------------------
#密码 
requirepass JD2020 
#集群间传递密码 
masterauth JD2020 
#绑定IP,会自动替换本机ip 
bind HOST_IP 127.0.0.1 
#关闭保护模式 
protected-mode no 
#集群配置信息 
cluster-config-file /export/common/redis-cluster/conf/7002-node.conf 
# Accept connections on the specified port, default is 6379 (IANA #815344). 
# If port 0 is specified Redis will not listen on a TCP socket. 
port 7002
pidfile /export/redis-cluster/redis_7002.pid 
cluster-enabled yes 
#cluster-node-timeout  5000              
#请求超时  设置5秒够了 
appendonly  yes 
dir /export/data/redis-cluster/7002
logfile /export/redis-cluster/logs/redis-7002.log
--------------------------------------------
启动redis
/export/redis-cluster/src/redis-server /export/common/redis-cluster/conf/redis_7001.conf &
/export/redis-cluster/src/redis-server /export/common/redis-cluster/conf/redis_7002.conf &
二、三节点
参照第一个节点操作。
ps -ef |grep redis
在第一个节点执行:
echo -e "yes\\n" |redis-cli --cluster create 192.168.0.101:7001 192.168.0.101:7002 \
192.168.0.102:7001 192.168.0.102:7002 192.168.0.103:7001 \
192.168.0.103:7002--cluster-replicas 1 |tee /tmp/t.tmp

Predixy:

高性能全特征redis代理,支持Redis Sentinel和Redis Cluster
规划:predixy作为redis代理,可与redis复用一个节点。
解压压缩包
tar xvf predixy-1.0.5-bin-amd64-linux.tar.gz -c /export/packages
创建软链接
ln -s /export/packages/predixy-1.0.5 /export/servers/predixy
获取redis集群master节点
redis-cli -h 192.168.0.101 -p 7001 -c cluster nodes|grep master
编辑cluster.conf
vim /export/servers/predixy/conf/cluster.conf
---------------------------------------------
ClusterServerPool {
MasterReadPriority 60
StaticSlaveReadPriority 50
DynamicSlaveReadPriority 50
RefreshInterval 1
ServerTimeout 1
ServerFailureLimit 10
ServerRetryTimeout 1
KeepAlive 120
Servers {
+ 192.168.0.101:7001
+ 192.168.0.102:7001
+ 192.168.0.103:7001
}
}
---------------------------------------------
启动predixy
cd /export/servers/predixy/bin/ && nohup ./predixy ../conf/cluster.conf &
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值