Redis学习笔记
一、String
1.1数据结构:简单动态字符串(SDS)
1.2局限:最大值不能超过512M
1.3命令
1 | # 浮点数 |
JSON
以二进制存储在树结构中,支持快速访问
Hash
set
常用命令
1 | #添加命令,可以添加多个成员 |
zset
4.1 底层数据结构
链表和跳跃表,如果元素大于128或者大小大于64字节就采用跳跃表
跳跃表采用多级索引实现
4.2 实现排行榜
按照票数和时间方案
使用票数.时间戳保存方案 比如 10.1747798719960 ,10代表10票,小数点后面代表最后投票时间
list
blmove 一个列表元素移到另一个列表阻塞移动
blmove source destination left|right left|right timeout
geo
底层数据结构zset,geo未提供删除命令,可以用zrem删除
7、统计UV
Hyperloglog
pfadd key member 添加元素 会自动去重
pfcount key 统计uv
MySQL索引失效
1、不符合最左匹配原则
2、辨识度太低,比如男女
3、类型错误,比如varchar类型 但是where条件是 name = 1
4、使用了 or
5、in 如果值少了话会走,多的话不会走,
6、列运算 比如 age + 1 = 12 不会走索引,age = 12 -1 走索引
7、使用函数
8、使用is not null ,is null 会走索引
限流算法
1、固定窗口限流,每个窗口再一定时间请求量固定,如果超过就丢弃
问题 如果限流1000,如果再100ms到达一千,后面请求丢弃,服务异常时间太长,可能会两倍突发流量
2、滑动窗口,将窗口划分为几个小窗口,按照一定时间往前移,如果超过时间,其他请求丢弃
3、令牌
4、漏斗
- Title: Redis学习笔记
- Author: The Redefine Team
- Created at : 2025-05-17 14:36:13
- Updated at : 2025-05-28 13:53:48
- Link: https://redefine.ohevan.com/2025/05/17/redis学习/
- License: This work is licensed under CC BY-NC-SA 4.0.
Comments