Redis01-redis基础
redis基础
redis五种数据类型
字符串 列表 字典 集合 有序集合(zset)
字符串 (string)
使用位图数据结构
列表 (list)
使用链表数据结构。
列表中每个元素使用双向链表,支持前后遍历
字典 (hash)
redis字典中的值只能是字符串
集合 (set)
内部键值是无序的、唯一的。
有序集合(zset)
使用跳跃列表数据结构
跳跃列表示例
容器型数据结构通用规则
list set hash zset是容器型数据结构。共享以下规则
1.如果容器不存在就创建一个,然后进行操作
2.如果容器中的元素没有了,立即删除容器释放内存
过期时间
如果一个字符串设置了过期时间,然后调用set方法修改了它,它的过期时间会消失
分布式锁
性能测试命令
redis-benchmark
基础命令
select 3 #切换数据库。默认16个数据库,第一个是0
keys * #查看数据库所有key
flushdb #清除当前数据库
FLUSHALL #清除全部数据库
expire #设置过期
persist #设置永不过期
config get requirepass #获取redis密码
config set requirepass "123456" #设置redis密码
auth "123456" #使用密码进行登录
事务相关命令
MULTI
EXEC
DISCARD
WATCH
为啥redis单线程还是这么快
1.redis的所有数据都存放在内存中
2.单线程,不存在多线程的CPU切换上下文的问题也不存在各种锁的问题
3.异步非阻塞IO模型(也叫IO多路复用)
IO多路复用机制
https://www.cnblogs.com/yanguhung/p/10145755.html
6种数据淘汰策略
1、volatile-lru: 从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰
2、volatile-ttl: 从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰
3、volatile-random: 从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰
4、allkeys-lru: 从数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰
5、allkeys-random: 从数据集(server.db[i].dict)中任意选择数据淘汰
6、no-enviction(驱逐) 禁止驱逐数据
Redis 有哪些适合的场景?
1、会话缓存(Session Cache)例如用户的购物车信息
2、全页缓存(FPC)
3、队列
4、排行榜/计数器
5、发布/订阅
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)