2026/8/13 7:19:58

黑马苍穹外卖笔记day5

黑马苍穹外卖笔记day5 Redis:Redis是一个基于内存的key-value结构数据库基于内存存储读写性能高适合存储热点数据热点商品、资讯、新闻企业应用广泛C盘中的redis文件夹放了redis的服务双击redis-server.exe可以运行redis服务端双击redis-cli.exe可以运行redis客户端也可以通过命令行 运行 redis-cli.exe -h localhost -p 6379命令来运行客户端服务端运行状态下Redis基础Redis数据类型:Redis存储的是key-value结构的数据其中key是字符串类型value有五种常用的数据类型字符串string普通字符串Redis中最简单的数据类型哈希hash也叫散列类似于java中的HashMap结构列表list按照插入顺序排序可以有重复元素类似于Java中的LinkedList集合set无序集合没有重复元素类似于Java中的HashSet有序集合sorted set/zset集合中每个元素关联一个分数(score)按照分数升序排序无重复元素Redis常用命令字符串操作命令SET key value设置指定key的值GET key获取指定key的值SETEX key seconds value设置指定key的值并将key的过期时间设定为seconds秒SETNX key value只有在key不存在时设置key的值哈希操作命令Redis hash是一个string类型的field和value的映射表hash特别适合用于存储对象HSET key field value将哈希表key中的字段field的值设为valueHGET key field获取存储在哈希表中指定字段的值HDEL key field删除存储在哈希表中的指定字段HKEYS key获取哈希表中所有字段HVALS key获取哈希表中所有值列表操作命令Redis列表是简单的字符串列表按照插入顺序排序类似队列LPUSH key value1 [value2]将一个或多个值插入到列表头部返回列表长度LRANGE key start stop获取列表指定范围内的元素RPOP key移除并获取列表最后一个元素LLEN key获取列表长度集合操作命令Redis set是string类型的无序集合。集合成员是唯一的集合中不能出现重复的数据SADD key member1 [member2]向集合添加一个或多个成员SMEMBERS key返回集合中的所有成员SCARD key获取集合的成员数SINTER key1 [key2]返回给定所有集合的交集SUNION key1 [key2]返回所有给定集合的并集SREM key member1 [member2]删除集合中一个或多个成员有序集合操作命令Redis有序集合是string类型元素的集合且不能重复每个元素都有一个double类型的分数ZADD key score1 member1 [score2 member2]向有序集合添加一个或多个成员ZRANGE key start stop [WITHSCORES]通过索引区间返回有序集合中指定区间内的成员ZINCRBY key increment member有序集合中对指定成员的分数加上增量incrementZREM key member [member ...]删除有序集合中的一个或多个成员通用命令Redis的通用命令是不分数据类型的都可以使用的命令KEYS pattern查找所有符合给定模式(pattern)的keyEXISTS key检查给定key是否存在TYPE key返回key所存储的值的类型DEL key该命令用于在key存在时删除key在Java中操作Redis在Spring项目中可以使用Spring Data Redis来简化操作Spring Data Redis使用方式配置Redis的模板对象需要使用Redis时先自动注入redisTemplate然后使用下面的方法来获取Redis中存储的数据字符串操作方法set(key,value)set(key,value,timeout,timetype) 设置过期时间get(key)setIfAbsent(key,value) 等价于SETNX哈希操作方法put(key,field,value)get(key,field)delete(key,field)keys(key) 返回Set集合存放filedvalues(value)返回List集合存放value列表操作方法leftPushAll(key,values...) :一次插入多个数据leftPush(key,value)range(key,start,end)遍历列表返回一个集合rightPop(key):从右侧弹出一个数据size(key)获取列表大小集合操作方法add(key,values..):一次插入一个或多个数据members(key):返回集合中所有元素存在一个set中size(key):获取大小intersect(key1,key2):获取两个集合交集存在一个set中union(key1,key2)获取两个集合并集存在一个set中remove(key,values..)一次删除一个或多个数据有序集合操作方法add(key,value,score)插入一个数据并附加分数range(key,start,end):从左边遍历集合并返回一个setincrementscore(key,value,inc)对value的分数增加一个inc量remove(key,values...)一次删除一个或多个数据通用命令操作方法直接使用redisTemplate.方法来调用keys(pattern):返回所有符合pattern的key的集合hasKey(key):返回一个bool值判断key是否存在type(key)返回这个键值对中value的类型存在一个DataType对象中delete(key)根据key删除一个键值对店铺营业状态设置接口设计设置营业状态管理端查询营业状态用户端查询营业状态本项目约定管理端发出的请求统一使用/admin作为前缀用户端发出的请求统一使用/user作为前缀营业状态数据存储方式基于Redis的字符串来进行存储注意查询营业状态需要在管理端和用户端都用一个ShopController来实现。然而由于Bean使用的是单例模式两个不同软件包下的同名类会报错这时候就要改变Bean的唯一标识也就是名称可以在RestController这个注释中进行更改RestController(userShopController)和RestController(adminShopController)要想在接口文档中区分管理员端和用户端的接口需要在WebMvcConfiguration这个配置类下分别使用两个方法通过knife4j生成管理员端和用户端的接口文档