redis缓存数据架构实战
redis命令参考:http://redisdoc.com/
与memcache对比
redis安装配置
yum安装
1 | yum - y install redis |
源码安装
PS:make报错**问题:**zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录
执行命令
1 | make MALLOC = libc |
把配置文件redis.conf拷贝至文件夹src
修改配置文件redis.conf把端口改成6380
修改允许后台启动
1 | daemonize yes |
启动
1 | . / redis - server . / redis.conf |
yum安装的可以使用systemctl启动 怎么把源码安装的也改成这样启动(思考题)
进入redis
1 | redis - cli |
源码安装的去src目录下找这个命令
指定端口进入
1 | . / redis - cli - p 6380 |
创建一个字符串变量 (key是foo值是minseo的键值对)
1 | set foo minseo |
获取
1 | get foo |
获取系统缓存中所有的key
1 | keys * |
配置文件
日志开关相当于MySQL的二进制日志不是error日志等日志
Bind保护模式
修改配置文件启动安全机制
修改配置文件
1 | protected - mode yes |
设置密码
1 | requirepass YOUPASSWORD |
重启
进入后无法查看(提示没有认证)
加认证后启动就能查看了
1 | redis - cli - p 6380 - a root |
关闭redis 进入以后shutdown (建议大写)
redis消息类型
运行配置
获取当前配置
1 | CONFIG GET * |
修改配置(修改内存中配置实例重启后无效需要修改配置文件)
1 | CONFIG SET loglevel "notice" |
redis数据存储
持久化策略(可以关闭不持久化直接从数据库读取)
持久化存储的文件为dump.rdb备份直接备份该文件即可
压缩
同步
数据类型
常规操作
追加
mset同时设置多个值
mget同时取多个值
1 | mget name foo |
strlen返回字符串的长度
incr针对数值加1(作为计数器使用)
decr针对数值减1
exists检查是否存在(可以在set前检查是否存在)
incrby增加指定的数
1 | INCRBY age 2 |
设置一个hash
在设置一个age和sex
hmset hmget设置返回多个值
hgetall返回所有值
hget返回单独的项
hmget同时返回多项
del删除
hdel删除hash中其中一个字段
PS:hash适合存储对象
hincrby加值(没有减的需要减则使用负数)
列表
lpush创建列表
lrange便利展示列表(列表下标从0开始类似python)
lpush从前面插入数据
rpush从后面插入数据
rpop移除列表末尾数据(返回数据)
lpop删除第一个数据
lset修改列表
lindex根据下标返回值
linsert插入值(after在后面插入值before在前面插入值)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!