没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
1.Redis介绍
2.数据结构
1. 字符串 (String)
2. 列表 (List)
3. 集合 (Set)
4. 散列 (Hash)
5.有序集合 (Sorted Set)
3.为什么 redis 是单线程的都那么快
3.1 内存存储和异步操作:
3.2 ⾮阻塞 I/O:
3.3 避免了多线程的竞态条件:
3.4 持久化策略的灵活选择:
3.5 ⾼效的⽹络模型:
4.redis数据持久化
4.1 RDB快照
4.2 AOF (append-only file)
5.主从模式
6.哨兵模式
6.1 定时监控任务
6.2 主客观下线
6.3 选举出某⼀哨兵节点作为领导者,来进⾏故障转移。
6.4 故障转移
6.5 哨兵环境搭建
环境准备
6379配置⽂件参考
启动三台Redis并查看Redis进程
登录6379,查看主从状态
哨兵节点环境搭建
7.集群模式
7.1 数据分⽚存储的原理
7.2 集群环境搭建
环境准备
V关注:程序员无名
6380配置⽂件参考
启动节点并查看服务进程
创建集群
验证
8.缓存过期策略
9.内存淘汰策略
10.缓存穿透,击穿,雪崩
10.1 缓存穿透
10.2 缓存击穿
10.3 缓存雪崩
Redis 是 NoSQL,但是可处理 1 秒 10w 的并发(数据都在内存中) 使⽤ java 对 redis 进⾏操作类似 jdbc
接⼝标准对 mysql,有各类实现他的实现类,我们常⽤的是 druid 其中对 redis,我们通常⽤ Jedis(也为我们
提供了连接池 JedisPool) 在 redis 中,key 就是 byte redis 的数据结构(value): String,list,set,orderset,hash
Redis中的字符串是⼆进制安全的,可以存储任何类型的数据,如⽂本、图⽚等。
使⽤场景:
缓存数据:存储经常访问的数据,以提⾼读取速度。 计数器:适⽤于统计⽹站访问量、⽤户点击次数等。 分
布式锁:使⽤字符串实现简单的分布式锁机制。
有序、可重复的元素集合。
使⽤场景:
消息队列:通过LPUSH和RPUSH实现队列的⼊队和出队操作。 最新列表:保存最新的N条记录,如最新发
布的⽂章列表。 分⻚数据:存储分⻚数据,以减轻数据库负担。
1.Redis介绍
2.数据结构
1. 字符串 (String)
2. 列表 (List)
3. 集合 (Set)
V关注:程序员无名
⽆序、不重复的元素集合。
使⽤场景:
标签系统:每个标签是⼀个集合,⽤户可以属于多个标签。 共同好友:两个⽤户的共同好友可以⽤集合表
示。 利⽤集合运算求交集、并集、差集等。
类似于字典,包含键值对的集合。
使⽤场景:
存储对象:将对象的字段存储为散列,⽅便读取和更新。 ⽤户属性:存储⽤户的各种属性,如⽤户名、年龄
等。 记录存储:适⽤于存储多个字段的数据。
数据结构: 有序的元素集合,每个元素都有⼀个分数。
使⽤场景:
排⾏榜:根据分数排序,适⽤于游戏中的⽤户排名等场景。 范围查找:根据分数范围查找元素,如查找指定
区间内的⽂章。 唯⼀性成员:确保集合中的成员唯⼀。
Redis主要将数据存储在内存中,这极⼤地加快了数据的读写速度。此外,Redis采⽤异步操作模式,将部分
耗时的操作如持久化写操作(RDB快照、AOF⽇志)等交给后台线程处理,主线程则继续处理其他请求。
Redis使⽤了⾮阻塞的I/O多路复⽤机制,主线程通过 epoll 或 select 监听多个套接字,当其中⼀个套接字准
备好数据时,主线程即可快速切换到该套接字进⾏读写操作,从⽽充分利⽤ CPU 资源。
单线程模型避免了多线程的竞态条件和锁的开销。在多线程环境下,为了保证数据⼀致性,需要使⽤锁,⽽
锁的使⽤可能导致性能下降。Redis通过单线程模型避免了这⼀问题,简化了代码复杂度。
4. 散列 (Hash)
5.有序集合 (Sorted Set)
3.为什么 redis 是单线程的都那么快
3.1 内存存储和异步操作:
3.2 ⾮阻塞 I/O:
3.3 避免了多线程的竞态条件:
V关注:程序员无名
剩余14页未读,继续阅读
资源评论
程序员无名
- 粉丝: 578
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功