Redis

1、redis的进化背景

Reactor模式

  • 传统阻塞IO模型客户端与服务端线程1:1分配,不利于进行扩展。

  • 伪异步IO模型采用线程池方式,但是底层仍然使用同步阻塞方式,限制了最大连接数。

  • Reactor 通过 I/O复用程序监控客户端请求事件,通过任务分派器进行分发。

单线程时代

  • 基于 Reactor 单线程模式实现,通过IO多路复用程序接收到用户的请求后,全部推送到一个队列里,交给文件分派器进行处理。

多线程时代

  • 单线程性能瓶颈主要在网络IO上。

  • 将网络数据读写和协议解析通过多线程的方式来处理 ,对于命令执行来说,仍然使用单线程操作。

https://xie.infoq.cn/article/d8785a39c52de02d9c3e06801

2、redis的部署模式

单节点实例

主从模式(master/slaver)

sentinel模式

cluster模式

https://www.cnblogs.com/cqming/p/11191079.html

3、redis 集群实战问题汇总

https://www.cnblogs.com/dadonggg/p/8628735.html

4、redis主从同步下数据丢失的处理方案

https://blog.csdn.net/duysh/article/details/103304134

从节点大于配置的时间点还未ack,从阻止主节点写入;减少了数据丢失的时间跨度

Redis Cluster 不保证强一致性,存在丢失数据的场景:

  • 异步复制

在 master 写成功,但 slave 同步完成之前,master 宕机了,slave 变为 master,数据丢失。

wait 命令可以给为同步复制,但也无法完全保证数据不丢,而且影响性能。

  • 网络分区

分区后一个 master 继续接收写请求,分区恢复后这个 master 可能会变为 slave,那么之前写入的数据就丢了。

可以设置节点过期时间,减少 master 在分区期间接收的写入数量,降低数据丢失的损失。

5、生产部署

1)测试环境 6个 IP

注意事项:

 1,搭建redis集群默认每个服务器上有两个实例,端口号分别为 6379 , 6380 。
 2,redis集群服务器需要6台,每个上面有2个redis实例。避免创建集群时主从在同一个服务器上。
#redis配置 config
redis.ips=10.***.***.190:6379,10.***.***.191:6379,10.***.***.192:6379,10.***.***.193:6379,10.***.***.194:6379,10.***.***.195:6379

 2)生产环境8 个IP

6、redis 特性

速度快

键值对的数据结构服务器

丰富的功能

简单稳定

持久化

主从复制

高可用和分布式转移

客户端多语言

7、主要应用

缓存

排行榜系统

计数器应用

社交网络

消息队列系统

8、常用命令

全局命令
查看版本及信息
./redis-server

查看key数量
dbsize

#查看进程
ps -ef|grep redis 

#模糊查找
keys 0566*

#是否存在key
exists 2acbb1294682454da68ed167cb67e925

set chenhy 1111
get chenhy 

#设置过期时间
expire chenhy 15

#查看过期时间
ttl chenhy



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值