Redis应用---Redis实现点赞点踩功能

为什么使用Redis而不是MySQL实现?

Redis 和 MySQL应用场景不同。

    从效率来说:

Redis的数据存放在内存,所以速度快但是会受到内存空间限制。

MySQL存放在硬盘,在速度上肯定没有Redis快,但是存放的数据量要多的多。

    从功能来说:

Redis是一个K-V数据库,同时还支持List/Hash/Set/Sorted Set等几个简单数据结构,所以只能以这些数据结构为基础实现功能。

Redis几种数据结构的适用场景

实现思路

使用Redis的Set数据结构存储数据。

Like和dislike对应不同的key,格式是:LIKE/DISLIKE:entityType:entityID;例如like的一个key:like:1:1234(1代表news业务,1234代表的是指定的newsId);可以通过RedisKeyUtil类中方法获取相应的key值;

public class RedisKeyUtil {
    private static String SPLIT = ":";
    private static String BIZ_LIKE = "LIKE";
    private static String BIZ_DISLIKE = "DISLIKE";

    /**
     * 返回Like的redis key
     * key:业务+参数
     * @param entityId
     * @param entityType
     * @return
     */
    public static String getLikeKey(int entityId, int entityType) {
        return BIZ_LIKE + SPLIT + String.valueOf(entityType) + SPLIT + String.valueOf(entityId);
    }

    public static String getDisLikeKey(int entityId, int entityType) {
        return BIZ_DISLIKE + SPLIT + String.valueOf(entityType) + SPLIT + String.valueOf(entityId);
    }
}

具体实现demo,参考:

经验分享 程序员 微信小程序 职场和发展