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();
    }
}
相关推荐
小北方城市网几秒前
第 6 课:全栈项目性能 & 安全双进阶 ——Redis 缓存 + JWT 认证(打造高并发高安全后端)
开发语言·数据库·redis·python·安全·缓存·数据库架构
愤怒的代码9 分钟前
简析 Kotlin 内联函数:与inline相关的关键字
android·java·kotlin
用针戳左手中指指头10 分钟前
Spring源码篇(十三)循环依赖
java·后端·spring·循环依赖·相互依赖
To Be Clean Coder11 分钟前
【Spring源码】getBean源码实战(五)——MergedBean
java·后端·spring
SimonKing28 分钟前
局域网内跨平台传文件,没有比LocalSend更方便的了
java·后端·程序员
超级小龙虾29 分钟前
VS Code 本身没有内置像 IntelliJ IDEA 那样的完整书签(Bookmarks)
java
万物挽挽40 分钟前
单例模式的优点和缺点分别是什么?
java
Katherine_lin40 分钟前
基于Spring Boot的抽奖系统测试报告
java·spring boot·后端
C_lea41 分钟前
Java多线程学习(一)
java·学习
萧曵 丶43 分钟前
Java 线程池优化
java·开发语言