Redis&店铺营业状态
介绍
Redis是一个基于内存的key—value的结构数据库
启动
在解压后的文件中打开cmd,输入redis-server.exe redis.windows.conf,或者用bat脚本打开
关闭的话按ctrl + c
连接redis
注意不要把启动界面关闭
密码在redis.windows.conf中搜索pass修改
数据类型
字符串string,哈希hash,列表list,集合set,有序集合zset
常用命令
字符串操作命令
setnx:如果key不存在就会创建,若存在就不会覆盖,而set就会覆盖
哈希操作命令
列表操作命令
集合操作命令
有序集合操作命令
通用命令
Spring Data Redis
操作步骤
application.yml
1 | spring: |
配置类
1 |
|
RedisConnectionFactory:
提供所需信息,如同电力公司(发电、输电)
RedisTemplate:
完成各种业务,如同家用电器(电灯、电视、冰箱)
业务层:
用Autowired获取并使用,如同住户(直接使用电器,不关心发电)
其中@Bean:
Bean = 对象生命周期管理 + 依赖注入 + 复杂流程封装
配置类中复杂的流程→ @Bean方法打包 → 返回成品对象 → @Autowired获取使用
字符串
SET key value |
opsForValue().set(key, value) |
基本设置 |
|---|---|---|
SETEX key seconds value |
opsForValue().set(key, value, Duration) |
设置带过期时间 |
SETNX key value |
opsForValue().setIfAbsent(key, value) |
键不存在时设置 |
GET key |
opsForValue().get(key) |
获取值 |
哈希
| HSET key field value | opsForHash().put(key, field, value) |
将哈希表key中的字段field的值设为value |
|---|---|---|
| HGET key field | opsForHash().get(key, field) |
获取存储在哈希表中指定字段的值 |
| HDEL key field | opsForHash().delete(key, field) |
删除存储在哈希表中的指定字段 |
| HKEYS key | opsForHash().keys(key) |
获取哈希表中所有字段 |
| HVALS key | opsForHash().values(key) |
获取哈希表中所有值 |
列表
| LPUSH key value1 [value2] | opsForList().leftPush(key, value) |
将一个或多个值插入到列表头部 |
|---|---|---|
| LRANGE key start stop | opsForList().range(key, start, end) |
获取列表指定范围内的元素 |
| RPOP key | opsForList().rightPop(key) |
移除并获取列表最后一个元素 |
| LLEN key | opsForList().size(key) |
获取列表长度 |
集合
| SADD key member1 [member2] | opsForSet().add(key, member1, member2, ...) |
向集合添加一个或多个成员 |
|---|---|---|
| SMEMBERS key | opsForSet().members(key) |
返回集合中的所有成员 |
| SCARD key | opsForSet().size(key) |
获取集合的成员数 |
| SINTER key1 [key2] | opsForSet().intersect(key1, key2) |
返回给定所有集合的交集 |
| SUNION key1 [key2] | opsForSet().union(key1, key2) |
返回所有给定集合的并集 |
| SREM key member1 [member2] | opsForSet().remove(key, member1, member2, ...) |
删除集合中一个或多个成员 |
有序集合
| ZADD key score1 member1 | opsForZSet().add(key, member, score) |
向有序集合添加成员,或更新已有成员分数 |
|---|---|---|
| ZRANGE key start stop | opsForZSet().range(key, start, end) |
通过索引区间返回有序集合的成员 |
| ZINCRBY key increment member | opsForZSet().incrementScore(key, member, delta) |
为有序集合成员的分数增加增量 |
| ZREM key member | opsForZSet().remove(key, member) |
移除有序集合中的一个或多个成员 |
通用
| KEYS pattern | keys(pattern) |
查找所有符合给定模式的key |
|---|---|---|
| EXISTS key | hasKey(key) |
检查给定key是否存在 |
| TYPE key | type(key) |
返回key所储存的值的类型 |
| DEL key | delete(key) |
在key存在时删除key |
店铺营业状态
接口设计
- 设置营业状态
- 管理端查询营业状态
- 用户端查询营业状态
之所以分开是因为刚开始有约定
管理端用/admin,用户端用/user
营业状态因为内容简单,就不多建一个数据库了,直接通过redis存储就行
用户端
1 |
|
商家端
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 西东温的小世界!












