[!IMPORTANT]
Redis基础
- Redis的常用数据类型有哪些?它们的特点是什么?
- Redis的常用命令有哪些?分别适用于哪些数据类型?
- 如何启动和停止Redis服务?
- 如何修改Redis配置文件以设置密码?
- Redis的通用命令有哪些?它们的作用是什么?
Java操作Redis
- 为什么要自定义RedisTemplate的序列化器?默认序列化器有什么问题?
- java操作redis的流程是什么?
店铺营业状态功能
如何通过Redis存储和查询店铺营业状态?
设置店铺营业状态的流程是什么?
Redis基础
1. Redis的常用数据类型及特点
-
字符串(string):最基本的键值存储,适用于文本、数字或二进制数据。
-
哈希(hash):键值对的集合,适合存储对象(如用户信息),支持部分字段操作。
-
列表(list):按插入顺序排序的字符串集合,可重复,支持双向操作(如LPUSH、RPOP)。
-
集合(set):无序且唯一的字符串集合,适合去重和集合运算(交集、并集)。
-
有序集合(zset):每个成员关联一个分数(score),按分数排序,适合排行榜等场景。
2. 常用命令及适用数据类型
- 字符串:
SET
(设值)、GET
(取值)、SETEX
(设值并设过期时间)、SETNX
(不存在时设值)。 - 哈希:
HSET
(设字段值)、HGET
(取字段值)、HKEYS
(获取所有字段)、HDEL
(删除字段)。 - 列表:
LPUSH
(左侧插入)、LRANGE
(范围查询)、RPOP
(右侧弹出)、LLEN
(长度)。 - 集合:
SADD
(添加成员)、SMEMBERS
(获取所有成员)、SINTER
(交集)、SREM
(删除成员)。 - 有序集合:
ZADD
(添加成员)、ZRANGE
(按范围查询)、ZINCRBY
(增加分数)、ZREM
(删除成员)。
3. 启动和停止Redis服务
- 启动:命令行执行
redis-server.exe redis.windows.conf
(Windows)或redis-server /path/to/redis.conf
(Linux)。 - 停止:在客户端执行
SHUTDOWN
命令,或使用Ctrl+C
终止进程,或通过系统服务管理工具停止。
4. 修改配置文件设置密码
在 redis.conf
文件中找到 requirepass
配置项,修改为:
requirepass 123456
重启Redis服务使配置生效。
5. 通用命令及作用
KEYS pattern
:查找匹配模式的键(慎用,可能阻塞服务)。EXISTS key
:检查键是否存在。TYPE key
:返回键存储的数据类型。DEL key
:删除指定键。
Java操作Redis
1. 自定义RedisTemplate序列化器的原因
默认的 JdkSerializationRedisSerializer
会导致存储的键和值带有Java序列化前缀(如\xac\xed\x00
),可读性差且与其他客户端不兼容。自定义为 StringRedisSerializer
或 Jackson2JsonRedisSerializer
可解决此问题。
2. 操作流程
-
引入依赖:添加Spring Boot Data Redis的Maven坐标。
-
配置连接信息:在
application.yml
中设置host
、port
、password
等。 -
配置RedisTemplate:创建配置类,设置序列化器(如
StringRedisSerializer
)。 -
注入使用:在业务代码中注入
RedisTemplate
,调用opsForValue()
、opsForHash()
等方法操作数据。
店铺营业状态功能
1. 存储与查询
存储:使用字符串类型,键为 SHOP_STATUS
,值为 1
(营业)或 0
(打烊)。
示例:redisTemplate.opsForValue().set("SHOP_STATUS", status);
查询:直接通过键获取值。
示例:Integer status = (Integer) redisTemplate.opsForValue().get("SHOP_STATUS");
2. 设置流程
- 前端提交状态值(如
1
或0
)。 - 后端接收参数并校验合法性。
- 调用Redis的
set
方法更新状态。 - 返回操作结果给前端。