- 本文省略了Redis的安装配置笔记,笔记的内容有添加,有减少,但总线是按黑马2022的Redis,仅供学习参考,可以随意转载。
- 本人使用的是云服务器,因此ip的配置不是127.0.0.1,大家根据自己实际情况进行配置,具体操作可以观看视频的前几节
- 本文会对一些知识进行补充:例如设置RedisSerializer为什么能解决乱码问题
Redis通用命令
KEYS查
KEYS:查看符合模板的key(模糊查询),单线程,且不适合大规模的生产环境
DEL删
可以一次删一个or一次删多个
EXIST判断是否存在
返回值就是个数
EXPIRE设置有效期
到有效期后自动删除。Redis消耗的是内存空间,为了节省空间or满足应用场景(例如短信验证码就必须在几分钟之内确认)
单位是seconds
TTL查看剩余有效期
- 这个命令跟EXPIRE配合使用
- TTL 某key :查看剩余有效期
- >0时:剩余有效期
- -1时:永久有效,or未设置EXPIRE
- -2时:已失效
键值对分层存储
- SET数据时可能存在“用户id==手机id”的情况,但他们又同属一个项目不应分割,因此引入key类型分层
- Redis允许key有多个层级,用冒号:隔开,例如
SET 项目名(手机购买记录) : 业务名(顾客) :key(1) value’{Json字符串}’
SET record : user : 1 ‘{“id” : 1 , “name” : “小明” , “age” : 18}’
SET 第一层:第二层:第三层:key value
5种常见Redis数据结构
- Redis是一个key-value数据库,key是String类型,value的类型就很多,如下
- 剩下不常见的例如GEO,BitMap,HyperLog不在此文中记录
- 数据结构指的是Value的结构,key是固定String的
总结
把一些小的总结写在前面 = =
- key都是String类型
- 当value是String时,存储的结构是一个字符串而不是表
- 当value是Hash时,存储的结构是一个细粒度的二维表单
- 当value是List、Set时,存储的结构是细粒度的有序or无序的一维表单
String
- 字符串类型,还可细分为:String普通字符串、int整数、float浮点
- 后两者可以自增自减 or 指定步长自增自减
- SET可添可改,SETNX才是真正意义上的添加
Hash
类似Java中的HashMap
把String操作命令的开头加上H就是Hash类型的操作命令语句