redis 运维问题持续整理

1、redis备份

* redis备份
 1、利用redis-cli 登录redis
 2、执行 SAVE命令            #会阻断redis主进程,导致客户端法连接redis
 3、config get dir命令可查看备份文件的目录
 4、也可使用bgsave后台备份,不会阻断主进程
 #恢复
 1、将备份文件放置 config get dir  获取的目录下
 2、重启redis 服务
 
* 数据迁移工具  redis-migrate-tool

2、redis集群原理,分片

redis原理:redis 3.0版本之前是不支持集群的,官方推荐最大的节点数量为1000,至少需要3(Master)+3(Slave)才能建立集群,是无中心的分布式存储架构,可以在多个节点之间进行数据共享,解决了Redis高可用、可扩展等问题。集群可以将数据自动切分(split)到多个节点,当集群中的某一个节点故障时,redis还可以继续处理客户端的请求。
支撑n个redis master node,每个master node 都可以挂载多个slave node
读写分离的架构,对于每个master来说,写就写到master,然后读就从mater对应的slave去读
高可用,因为每个master都有slave节点,那么如果master挂掉了,redis cluster这套机制,就会将某个slave切换成master
我们只要基于redis cluster 去搭建redis集群即可,不需要手工搭建replication复制+主从架构+读写分离+哨兵集群+高可用
自动将数据进行分片,每个master上放一部分数据,提供内置的高可用支持,部分master不可用时,还是可以继续工作。

redis分片:就是将数据拆分到多个 Redis 实例的过程,这样每个实例将只包含所有键的子集。当数据量大的时候,把数据分散存入多个数据库中,减少单节点的连接压力,实现海量数据存储。
    分片部署方式一般有三种:
    (1)在客户端做分片;这种方式在客户端确定要连接的redis实例,然后直接访问相应的redis实例
    (2)在代理中做分片;这种方式中,客户端并不直接访问redis实例,它也不知道自己要访问的具体是哪个redis实例,而是由代理转发请求和结果;其工作过程为:客户端先将请求发送给代理,代理通过分片算法确定要访问的是哪个redis实例,然后将请求发送给相应的redis实例,redis实例将结果返回给代理,代理最后将结果返回给客户端
    (3)在redis服务器端做分片;这种方式被称为“查询路由”,在这种方式中客户端随机选择一个redis实例发送请求,如果所请求的内容不再当前redis实例中它会负责将请求转交给正确的redis实例,也有的实现中,redis实例不会转发请求,而是将正确redis的信息发给客户端,由客户端再去向正确的redis实例发送请求。
https://www.cnblogs.com/niyueling/p/11655787.html


redis用在了哪些环境:
java、php环境用到了redis,主要缓存有登录用户信息数据、设备详情数据、会员签到数据等

3、

4、

5、

6、

7、

8、

9、

你可能感兴趣的:(redis 运维问题持续整理)