Redis的分片、哨兵、集群、持久化

Redis

1. 什么是redis

Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
它是内存中的数据结构存储系统,可以用来作为数据库(非关系型数据库)、缓存(可以有效的降低用户访问物理设备的频次,有效的减少并发的压力,从而保护后端真实的服务器)和消息中间件(主要作用是为了实现数据的平滑过渡,让程序调用更加流畅)。它支持多种类型的数据结构:字符串(String),哈希(Hash),列表(list),集合(sets) 和有序集合(sorted sets)。
Redis内置了复制(replication),LUA脚本(Lua scripting),LRU驱动事件(LUR eviction),事务(transactions)和不同级别的磁盘持久化(persistence),并通过Redis哨兵(Sentinel)和自动分区(Cluster)提供高可用性(high avaliability)。

2. Redis分片

2.1 什么是Redis分片

Redis分片就是:准备多台redis,共同为用户提供缓存服务.在保证效率的前提下,实现了内存的扩容。用户在使用分片机制时,将多台redis当做1台使用。

2.2 搭建Redis分片环境

  1. 在redis目录下新建一个名为shards的文件夹
    在这里插入图片描述
  2. 复制3份redis.conf配置文件并命名为6379.conf、6380.conf、6381.conf
    在这里插入图片描述
  3. 进入6380.conf配置文件里修改端口号(6381.conf里的端口号改成6381)
    在这里插入图片描述
  4. 启动三台redis
    在这里插入图片描述
  5. 查看启动情况
    在这里插入图片描述

2.3 分片的不足

  1. 分区是多台redis共同作用的,如果其中一台出现了宕机现象,则整个分片都将不能使用,虽然是在一定程度上缓减了内存的压力,但是没有实现高可用。
  2. 涉及多个key的操作通常是不被支持的。举例来说,当两个set映射到不同的redis实例上时,你就不能对这两个set执行交集操作。
  3. 涉及多个key的redis事务不能使用。
  4. 当使用分区时,数据处理较为复杂,比如你需要处理多个rdb/aof文件,并且从多个实例和主机备份持久化文件。
    高可用
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值