点赞是高频的操作,如果读取都通过数据库操作,会增大数据库的负担,使用redis作为缓存+定时的方式,可以减少数据库的负担。
优点是 点赞操作的速度加快;减少了数据库的负担
缺点是 redis的持久化不是实时的,缓存中可能丢失用户的点赞数据
在使用redis的时候首先在pom文件中导入jedis的包,其次建立工具类 JedisAdapter 属于service层,其次由于redis存储的时候对key的要求很高,为保证key的唯一性和有效性,
建立redisUtil来管理key
//rediskey的工具类
public class RedisUtil{
private statoc final String SPILT=":";
private sttaic final String BIZ_LIKE="LIKE";
private static final String BIZ_DISLIKE="DISLIKE";
private sttaic final String BIZ_EVENT="EVENT";
public staic String getEventQueuKey(){reutrn BIZ_EVENT;}
public staic String getLikeKey(int entityId,int ntityType){
return BIZ_LIKE+SPLIT+String.valueOf(entityType)+SPLIT+String.valueOf(EntityId);
}
public staic String getDislikeKey(int entityId,int ntityType){
return BIZ_DISLIKE+SPLIT+String.valueOf(entityType)+SPLIT+String.valueOf(EntityId);
}
}
下面是连接redis和数据库 并封装redis中的get set rem操作
@service
publicclassJedisAdpater implemrnts InitializeBean{
Jedis pool=null;
@Override
public void aferpropertiesSet(){
pool=new JedisPool("localhost",6379);
}
//查询
public String get(String key){
try{
Jedis jedis=pool.getResourse();
return jedis.get(key);
}catch(E$xception e){
e.printstack();
}finally{
if(jedis!=null)
jedis.clase();
}
}
}
//点赞点踩操作
@Service
public class LikeService{
@Autowired
JedisAdapter jedisAdapter;
//点赞的状态
....待续
}
原文地址:https://www.cnblogs.com/bowenqianngzhibushiwo/p/11546261.html