redis+消息队列_20200728.docx
20200728redis相关重要知识点的记录,包含redis通过setnx+expire实现分布式锁,redis单机锁会面临的宕机锁无法释放和执行长时间任务导致超时释放锁,临界区代码没有安全执行的问题,因此出现了redlock红锁,能够保证 Redis 是一个高性能的内存数据结构服务器,常被用作数据库、缓存和消息中间件。它的特点是速度快,因为它将所有数据存储在内存中,并通过异步持久化到磁盘以保证数据安全性。Redis 支持丰富的数据类型,包括字符串(string)、哈希(hash)、列表(list)、集合(set)和有序集合(sorted set)。 Redis 的主要使用场景包括: 1. 记录和统计,如帖子的点赞数、点击数和评论数。 2. 缓存热门内容,提高网站性能,如缓存近期热帖或文章详情信息。 3. 存储用户会话信息,以维持用户状态,尤其是在高并发环境中,Redis 能显著提升系统性能。 Redis 提供多种功能,如数据缓存、分布式锁、数据持久化、事务处理以及消息队列。相比于 Memcached,Redis 有以下不同点: 1. 存储方式:Redis 支持部分数据持久化到硬盘,而 Memcached 数据完全存储在内存中,断电数据丢失。 2. 数据类型:Redis 支持复杂的数据类型,如哈希和有序集合,Memcached 支持的数据类型较为简单。 3. 底层模型:Redis 使用自建的虚拟内存机制,而 Memcached 依赖于操作系统提供的 I/O 多路复用。 4. value 大小:Redis 的 value 最大可达到 512MB,Memcached 限制为 1MB。 Redis 的单线程模型是其性能高效的原因之一。由于 CPU 通常不是 Redis 的瓶颈,而是内存和网络带宽,所以单线程简化了实现并减少了上下文切换的开销。Redis 通过文件事件处理器处理并发操作,它包括多路复用程序、文件事件分派器和事件处理器,确保了高效的数据处理。 在处理缓存问题时,Redis 遇到的挑战包括缓存穿透和缓存雪崩: 1. 缓存穿透:通过参数校验、缓存无效 key 或使用布隆过滤器可以防止请求直接落到数据库上。 2. 缓存雪崩:通过设置不同的过期时间和使用二级缓存策略来避免所有缓存同时失效。 Redis 的数据类型中,字符串(String)是最基础的,可以包含各种数据,如数字或序列化的对象。哈希(Hash)则适用于存储键值对,特别适合保存和更新对象。字符串和哈希分别有不同的内部编码,如 int、raw 和 embstr 编码,以优化存储效率。 Redis 是一个强大的工具,广泛应用于各种场景,尤其在需要高性能、低延迟和复杂数据结构的应用中。其单线程模型和丰富的数据类型设计使得 Redis 成为了现代 Web 开发中的关键组件。
剩余11页未读,继续阅读
- 粉丝: 140
- 资源: 51
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助