javaweb中的点赞功能_redis

Posted 博闻强识不是我

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaweb中的点赞功能_redis相关的知识,希望对你有一定的参考价值。

点赞是高频的操作,如果读取都通过数据库操作,会增大数据库的负担,使用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;

 

//点赞的状态

 

 

....待续

 

}

 

以上是关于javaweb中的点赞功能_redis的主要内容,如果未能解决你的问题,请参考以下文章

各大软件平台的点赞功能,用MySQL还是Redis好?

点赞功能

点赞功能

点赞功能,用mysql还是redis?

根据用户的点赞数对 Rails 中的项目列表进行排序

新浪微博「点赞功能」数据库如何设计的?