Redis

Redis 常用数据类型

1.字符串

string

int 分布式锁、规避并发

bitmap (1字节=八位能够使用很小的空间处理很大标记性的数据)
1)SETBIT 设置
2)BITCOUNT 数量
3)BITPOS 1第一次出现
4)BITOP  计算AND 并 、 OR 或 、 NOT异或 、 XOR 非

2.列表

有序(插入顺序)

栈 同向命令

堆 反向命令

数组

阻塞队列 BLPOP key [key ...] timeout  (消息队列)

3.Hash

map(key,value)

int类型的可以做CRUD

详情页(点赞、收藏、)

4.set

无序 位置随机 去重

抽奖

5.sorted_set

有序set  从左往右变大  底层使用跳表

多个key 可以进行操作(交集、并集)【爬数据根据权重重新排序】

排名


扩展

Pub/Sub 消费者订阅一个通道(阻塞),生产者往通道里面添加数据,消费者会接收到数据。

Redis是可扩展的:(可以专门为某块业务来扩展Redis类型)

使用Redis解决穿透问题---bloom过滤器
bloom 原理是利用bitmap来实现的   一个值通过n个算法定位到n个位数 bitmap对应的位数为1通过反之不通过。能够很大概率上防止穿透。

Redis保证数据不丢失

RDB:是指在指定的时间间隔内将内存中的数据集快照写入磁盘。实际操作过程是,fork 一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。
AOF:以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。

RDB优点缺点:
优点:1)灵活设置备份频率和周期。
           2)性能最大化。需要做的只是 fork 出子进程,之后再由子进程完成这些持久化的工作,这样就可以极大的避免服务进程执行 IO 操作了。
           3)恢复更快。相比于 AOF 机制,RDB 的恢复速度更更快,更适合恢复数据,特别是在数据集非常大的情况。
缺点:1)数据丢失。系统一旦在定时持久化之前出现宕机现象,此前没有来得及写入磁盘的数据都将丢失。【配合AOF使用
            2)数据集较大时,可能会导致整个服务器停止服务。【夜晚启动RDB备份

AOF优点缺点:
优点:1)AOF 包含一个格式清晰、易于理解的日志文件用于记录所有的修改操作。
          2)可以带来更高的数据安全性,即数据持久性。Redis 中提供了 3 种同步策略,即每秒同步、每修改(执行一个命令)同步和不同步。【丢数据少】
          3)AOF 日志过大,Redis 可以自动启用 rewrite 机制。
缺点:1)AOF 文件通常要大于 RDB 文件。RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快。
            2)AOF 在运行效率上往往会慢于 RDB 。【基于同步策略

Redis集群化部署

sentinel 哨兵模式

    主要解决是主备问题:由于网络不稳定。当主机挂掉之后哨兵模式能够更快的相应把备机转换成主机。

哨兵模式运行机制:哨兵通过与Redis主备机通信,当某台Redis通信失败会认为该Redis宕机。如果master宕机会通知其他备机,并通过修改配置把备机修改成主机。

一般情况sentinel会有三个节点,通过投票的方式来确定Redis节点是否宕机。少数服从多数原则。过半原则。

Redis单节点容量问题

1、按照业务拆分。(权限一套Redis、商品一套Redis等)

2、sharding分片技术。

主要介绍2.

2.1  客户端分片
    通过算法把数据分别存储到不同的服务器上。
2.2 服务端分片
    数据发送到服务端,服务端通过算法把数据存储到不同的机器上。
2.3 代理分片
    数据发送给代理,由代理通过算法把数据存储到不同的机器上。

优缺点:

    客户端分片。服务端简单,客户端需要进行数据处理然后进行分片。业务复杂化。可以支持服务端数据计算(sorted_set交并集、事务等)
    服务端分片:Redis 3.0的集群支持HA。客户端连接集群中任意节点,增删改查时会通过算法查出数据在哪个节点上,会自动把连接连到该节点。数据分片算法 hash取模 16384个槽位。连接成本会很高。
    代理分片:客户端与代理连接,所有的操作发送给代理,由代理确定数据存储到哪个节点上。需要引入代理层。twemproxypredixy。(predixy很快)

分片算法:
       1. hash 取模算法 (扩展性不高)
       2. 随机random  
       3. hash一致性  

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。