• Redis常见使用场景


    • 缓存
    • 数据共享分布式
    • 分布式锁
    • 全局ID
    • 计数器
    • 限流
    • 位统计
    • 购物车
    • 用户消息时间线timeline
    • 消息队列
    • 抽奖
    • 点赞、签到、打卡
    • 商品标签
    • 商品筛选
    • 用户关注、推荐模型
    • 排行榜

    1、缓存

    String类型

    例如:热点数据缓存(例如报表、明星出轨),对象缓存、全页缓存、可以提升热点数据的访问数据。

    2、数据共享分布式

    String 类型,因为 Redis 是分布式的独立服务,可以在多个应用之间共享

    分布式Session

    <dependency> 
     <groupId>org.springframework.session</groupId> 
     <artifactId>spring-session-data-redis</artifactId> 
    </dependency>

    3、分布式锁

    String 类型setnx方法,只有不存在时才能添加成功,返回true

    public static boolean getLock(String key) {

    /////////////在指定的 key 不存在时,为 key 设置指定的值        设置成功,返回 1 。 设置失败,返回 0 。
        Long flag = jedis.setnx(key, "1");
        if (flag == 1) {

    //////////设置过期时间
            jedis.expire(key, 10);
        }
        return flag == 1;
    }

    public static void releaseLock(String key) {
        jedis.del(key);
    }

    4、全局ID

    int类型,incrby,利用原子性

    ///////////在原基础上增加

    incrby userid 1000

    分库分表的场景,一次性拿一段

    5、计数器

    int类型,incr方法

    例如:文章的阅读量、微博点赞数、允许一定的延迟,先写入Redis再定时同步到数据库

    6、限流

    int类型,incr方法

    以访问者的ip和其他信息作为key,访问一次增加一次计数,超过次数则返回false

  • 相关阅读:
    Activity传递数据
    Java JDK环境变量配置
    Java与IOS日期格式
    第十四篇 ANDROID的 BLUETOOTH 实现机制--中介模式和代理模式
    第十五篇 Android 的Backup服务管理机制--助手模式
    第十八篇 ANDROID的声音管理系统及服务
    使用Unsafe来实现自定义锁
    rabbitMQ实现推迟队列
    简单分布式锁的实现
    [原创]通过切面与分布式锁实现合并相同请求
  • 原文地址:https://www.cnblogs.com/KL2016/p/15084483.html
Copyright © 2020-2023  润新知