redistemplate实现点赞相关功能

使用Redis的SET数据结构来存储每个实体的点赞用户ID列表,方便进行点赞数量的计数和用户点赞状态的检查。以下是一个小demo,只提供简单思路。

java 复制代码
@Service
public class LikeService {


    @Autowired
    private RedisTemplate redisTemplate;

    //点赞
    public Long like(String userId,String entityId){
        String key = "like:" + entityId;
        return redisTemplate.opsForSet().add(key,userId) == 1L ? 1L : 0L;
    }

    //取消点赞
    public Long unLike(String userId,String entityId){
        String key = "like:" + entityId;
        return redisTemplate.opsForSet().remove(key,userId) == 1L ? 1L : 0L;
    }

    //查询点赞数量
    public Long isLiked(String userId,String entityId){
        String key = "like:" + entityId;
        return redisTemplate.opsForSet().remove(key,userId) == 1L ? 1L : 0L;
    }

    //查询用户点赞状态
    public Long countLikes(String entityId){
        String key = "like:" + entityId;
        return redisTemplate.opsForSet().size(key).longValue();
    }
}
相关推荐
lkbhua莱克瓦243 分钟前
MySQL介绍
java·开发语言·数据库·笔记·mysql
武昌库里写JAVA6 分钟前
在iview中使用upload组件上传文件之前先做其他的处理
java·vue.js·spring boot·后端·sql
董世昌419 分钟前
什么是事件冒泡?如何阻止事件冒泡和浏览器默认事件?
java·前端
好度16 分钟前
配置java标准环境?(详细教程)
java·开发语言
teacher伟大光荣且正确21 分钟前
关于Qt QReadWriteLock(读写锁) 以及 QSettings 使用的问题
java·数据库·qt
nightseventhunit23 分钟前
base64字符串String.getByte导致OOM Requested array size exceeds VM limit
java·oom
悟能不能悟39 分钟前
java map判断是否有key,get(key)+x,否则put(key,x)的新写法
java·开发语言
webbodys1 小时前
Python文件操作与异常处理:构建健壮的应用程序
java·服务器·python
石工记1 小时前
对称加密 vs 非对称加密图解详解
java·网络安全
@淡 定1 小时前
主流缓存中间件对比:Redis vs Memcached
redis·缓存·中间件