欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > 苍穹外卖day4 redis相关简单知识 店铺营业状态设置

苍穹外卖day4 redis相关简单知识 店铺营业状态设置

2025/2/22 16:41:34 来源:https://blog.csdn.net/chengooooooo/article/details/145662494  浏览:    关键词:苍穹外卖day4 redis相关简单知识 店铺营业状态设置

内存存储 键值对 key-value 一般用于处理突发性大量请求数据操作(暂时浅显理解)

读写速度极快,常用于缓存数据,减少对数据库的访问压力,提高系统性能。例如,可以缓存用户会话、商品信息、页面数据

设置默认密码123456

Redis五种常见数据类型

哈希结构可以存对象及其属性 集合可以用来查询公共元素 让我联系到并查集的内容

有序集合zset/sorted set 可用来做排行榜

不同于MYSQL Redis操作需要判断当前数据类型 再执行特定操作命令

setex key second value 短信验证码

setnx key value 只有在key不存在时设置key的值 会在分布式锁涉及

哈希操作命令

列表操作命令  按照插入顺序排序

> lrange mylist 0 -1 从栈头到栈尾 e d c b a 

> lpop mylist    e
> rpop mylist    a

集合操作命令 Redis集合是无序集合且不能重复出现相同元素

有序集合操作

了解类知识 接下来要部署在java项目里

原理上还是用上述语句 pom.xml配置 再创建RedisConfig配置类 在yml文件里构建redis关联 

实现语句 如下 换汤不换药系列

@Configuration
@Slf4j
public class RedisConfiguration {@Beanpublic RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){RedisTemplate redisTemplate = new RedisTemplate();//设计redis连接工厂对象redisTemplate.setConnectionFactory(redisConnectionFactory);//设置redis key的序列化器 避免显示乱码redisTemplate.setKeySerializer(new StringRedisSerializer());return redisTemplate;}
}
在yml文件里配置redisredis:host: localhostport: 6379password: 123456database: 0
@SpringBootTest
public class SpringDataRedisTest {@Autowiredprivate RedisTemplate redisTemplate;@Testpublic void RedistTemplateTest(){System.out.println(redisTemplate);HashOperations hashOperations = redisTemplate.opsForHash();ListOperations listOperations = redisTemplate.opsForList();SetOperations setOperations = redisTemplate.opsForSet();ZSetOperations zSetOperations = redisTemplate.opsForZSet();ValueOperations valueOperations = redisTemplate.opsForValue();}/*** 操作字符串类型数据*/@Testpublic void TestString(){//set get setex setnxredisTemplate.opsForValue().set("city","西安");String city = (String) redisTemplate.opsForValue().get("city");System.out.println(city);redisTemplate.opsForValue().set("code","1234",3, TimeUnit.MINUTES);redisTemplate.opsForValue().setIfAbsent("lock","1");redisTemplate.opsForValue().setIfAbsent("lock","2");}/*** 操作哈希类型数据*/@Testpublic void TestHash(){//hset hget hdel hkeys hvalsHashOperations hashOperations = redisTemplate.opsForHash();hashOperations.put("1000","name","tom");hashOperations.put("1000","age","20");String name = (String) hashOperations.get("1000", "name");System.out.println(name);Set keys = hashOperations.keys("1000");System.out.println(keys);List values = hashOperations.values("1000");System.out.println(values);hashOperations.delete("1000","age");}/*** 操作列表类型的数据*/@Testpublic void testlist(){//lpush lrange rpop llenListOperations listOperations = redisTemplate.opsForList();listOperations.leftPushAll("mylist", "a", "b", "c");listOperations.leftPush("mylist", "d");List mylist = listOperations.range("mylist", 0, -1);System.out.println(mylist);listOperations.rightPop("mylist");Long size = listOperations.size("mylist");System.out.println(size);}/*** 操作集合类型的数据*/@Testpublic void testSet(){//sadd smembers scard sinter sunion sremSetOperations setOperations = redisTemplate.opsForSet();setOperations.add("set1", "a", "b", "c", "d");setOperations.add("set2", "a", "b", "x", "y");Set members = setOperations.members("set1");System.out.println(members);Long size = setOperations.size("set1");System.out.println(size);Set intersect = setOperations.intersect("set1", "set2");System.out.println(intersect);Set union = setOperations.union("set1", "set2");System.out.println(union);setOperations.remove("set1", "a", "b");}/*** 操作有序集合类型的数据*/@Testpublic void testZset(){//zadd zrange zincrby zremZSetOperations zSetOperations = redisTemplate.opsForZSet();zSetOperations.add("zset1", "a", 10);zSetOperations.add("zset1", "b", 12);zSetOperations.add("zset1", "c", 9);Set zset1 = zSetOperations.range("zset1", 0, -1);System.out.println(zset1);zSetOperations.incrementScore("zset1", "c", 10);zSetOperations.remove("zset1", "a", "b");}/*** 通用命令操作*/@Testpublic void testCommon(){//keys exists type delSet keys = redisTemplate.keys("*");System.out.println(keys);Boolean name = redisTemplate.hasKey("name");Boolean set1 = redisTemplate.hasKey("set1");for (Object key : keys) {DataType type = redisTemplate.type(key);System.out.println(type.name());}redisTemplate.delete("mylist");}

店铺营业状态设置

这里用到redis来存储当前营业状态为1(营业)还是0(未营业)

 

要在控制层里创建用户端和管理端 所以要创建两个ShopController  在WebMVCconfigragtion里

设置两个Docker 分别管理 用户端和管理端

随记

有点焦虑了 现在好像redis mq 和 这个项目还没敲完 也没学 啊 好麻烦 还是得学 ! 提高效率!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词