《分布式中间件技术实战:Java版》学习笔记:Redis实现点赞、取消赞功能
import redis.clients.jedis.Jedis;
public class RedisLikeService {
private Jedis jedis;
private static final String LIKE_KEY_PREFIX = "like:";
public RedisLikeService(Jedis jedis) {
this.jedis = jedis;
}
// 用户点赞
public long like(String userId, String entityType, String entityId) {
String likeKey = LIKE_KEY_PREFIX + entityType + ":" + entityId;
return jedis.sadd(likeKey, userId);
}
// 用户取消点赞
public long unlike(String userId, String entityType, String entityId) {
String likeKey = LIKE_KEY_PREFIX + entityType + ":" + entityId;
return jedis.srem(likeKey, userId);
}
// 检查用户是否点赞
public boolean isLiked(String userId, String entityType, String entityId) {
String likeKey = LIKE_KEY_PREFIX + entityType + ":" + entityId;
return jedis.sismember(likeKey, userId);
}
// 获取点赞用户列表
public Set<String> getLikedUsers(String entityType, String entityId) {
String likeKey = LIKE_KEY_PREFIX + entityType + ":" + entityId;
return jedis.smembers(likeKey);
}
// 获取点赞数
public long getLikeCount(String entityType, String entityId) {
String likeKey = LIKE_KEY_PREFIX + entityType + ":" + entityId;
return jedis.scard(likeKey);
}
}
这段代码提供了点赞、取消点赞、检查用户是否点赞以及获取点赞用户列表和点赞数的功能。使用Redis的Set数据结构来存储每个实体的点赞用户ID列表,方便地执行增加、删除以及判断用户是否点赞的操作。
评论已关闭