微前端架构如何改变企业的开发模式与效率提升
597
2022-11-26
关于用redis缓存对象
本文基本上是<
我们知道redis可以存储的数据结构比memcached多,它包含hash,list等等
但是如果,我有一个Person对象,里面两个变量,username,password,我想保存一个Person对象呢? 那很简单呀,要么使用pb把它序列化,要么把对象转成json字符串 从速度上讲pb要比json快 但是pb的结果是不可读的,相比较于json,对程序员不是那么友好 所以一般情况下,都是使用json的
package com.imooc.miaosha.redis;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.alibaba.fastjson.JSON;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;@Servicepublic class RedisService { @Autowired JedisPool jedisPool; /** * 获取但个对象 * */ public
看到上面的代码,朋友们可能要问那个KeyPrefix是个什么东西 假如有个用户,它的key是abc 假如有个订单,它的key也是abc 而且,即使同一个用户,我也希望他在缓存里有两个项,一个是按照用户名去查,一个是根据电话号码去查 明白了吧? 我们保证每个模块内的数据的前缀都是不一样的,而且同一个数据也可以保存两次 那具体怎么实现呢?
package com.imooc.miaosha.redis;public interface KeyPrefix { public String getPrefix();}package com.imooc.miaosha.redis;public abstract class BasePrefix implements KeyPrefix{ private String prefix; public BasePrefix( String prefix) { this.prefix = prefix; } public String getPrefix() { String className = getClass().getSimpleName(); return className+":" + prefix; }}package com.imooc.miaosha.redis;public class UserKey extends BasePrefix{ private UserKey(String prefix) { super(prefix); } public static UserKey getById = new UserKey("id"); public static UserKey getByName = new UserKey("name");}package com.imooc.miaosha.redis;public class OrderKey extends BasePrefix{ private OrderKey (String prefix) { super(prefix); } public static UserKey getById = new UserKey("id"); public static UserKey getByName = new UserKey("name");}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~