Redis 理论知识整理

1. redis 的历史;

Redis(Remote Dictionary Server),远程词典服务器,

是 2010 年发布的一个非关系型数据库(no sql),以 键值对的方式存储将数据。

 

2. 特点

(1) 存储,读写速度极快(a. C语言编写; b. 单线程架构; c. 源码结构简单);

(2)性能稳定;

(3)支持的数据类型多:String,List, Hash,  Set,  ZSet ;

(4)支持的客户端语言种类较多: java, python, C, C++, PHP

(5)支持 2 种持久化方式: RDB 和 AOF;

 

2.1 数据类型整理:

   2.1.1  String:存储的键值对,键:自定义, 值:一个字符串。适用于大段文字的缓存

   

2.1.2  List:存储的键值对,键:自定义, 值:一个数组,可以是二维的,严格来说是 ArrayList 集合。

、有下标。

   

2.1.3  Hash:存储的键值对,键:自定义, 值:一个键值对的 HashMap。

   

2.1.4  Set:存储的键值对,键:自定义, 值:一个键值对的 HashSet。

   

2.1.5  ZSet:存储的键值对,键:自定义, 值:有分数进行排序的 HashSet。直接查询出来的集合也是直接排序好了的。

3. 事务

Redis 的命令执行是自带锁的,执行成功,都执行成功, 执行失败,所有命令都执行失败, 保证了数据的 原子性;

 

4. 连接管道的持久性;

Redis 客户端连接服务器时 TCP 连接,多条命令一次io,减少了网络的开销;

客户端发送请求到服务器,然后持续阻塞监听;

服务器获取到请求,处理返回记过到客户端,客户端一次性读取服务器的多条相应,提高服务器的工作效率。

 

5. 分布式锁

Redis 支持配置分布式锁,

官方使用的是 RedLock, 加锁时设置一个字符串,和一个随机值。

取消:先进性对比, 然后删除 key 值。

 

6. 缺点:

常出现的问题; 缓存雪崩,击穿,穿透; 

缓存穿透:缓存种没有数据, 数据库也没有数据,但是该数据被大量的请求,导致服务器压力较大;

缓存击穿:缓存种没有数据,数据库有数据。 大量请求数据库。

缓存雪崩:缓存种的数据同时大量失效,前台请求直接走向数据库, 造成数据库压力加大;

 

7. 存储到硬盘, 持久化;

两种方式: RDB,  AOF

RDB: 定时将 redis 种的数据存储备份到 磁盘中。

优点:数据清晰,方便移动;

缺点:任务是定时的,服务器 宕机容易丢失大量数据;

 

AOF: 将操作日志进行存储。

优点:行为是即时的,可以最大限度的保证数据的完整性;

缺点:存储文件大,速度较慢。

 

8,应用场景

高频率访问,阶段性访问的数据,不是非常频繁的变更的热点数据信息。

 

9. 常用接口:

引用该文章,作者书写的比较详细。

https://blog.csdn.net/lydms/article/details/105224210

 

10. 搭建集群。

Redis 支持搭建 高可用集群,运用 "哨兵机制" 及时发现节点变化和自动转移。具体操作不详述;

哨兵机制:

a. 检查主从服务器是否正常;

b. 发现服务器异常,发送 “消息” 给管理者其他程序;

c. 主服务器宕机: 从其他 从服务器种选择一台充当新的 主服务器; 同时向客户端发送 新主服务器的地址,修改客户端的请求路径;修改其他从服务器存储的主服务器路径。

 

11. 应用场景

主要针对数据量比较庞大的系统:社交、媒体等、评论点赞、新闻排行榜等。

公共数据的缓存。

a. 缓存;

b. 排行榜系统;

c. 消息队列;

d. 计数器应用;

 

 

12. mongoDB 之间的比较

Redis 和  mongoDB 都是 键值对 存储模式的 非关系型数据库。

区别:

Redis 是严格的键值对存储,用户自主设置键和值,一个对象一个值一条数据。清晰明了。如图:

mongoDB:一个类一个键,这个类中间存储的是数组,存储了多个对象。适用于存储操作日志、商品描述、详情、评论等大段文字等修改极少的数据。

mongoDB 没有事务支持。 mongodb 没有很多的数据类型,只有一个:集合(collection)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值