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
最新文章
- ELF Format 笔记(十四)—— 段内容
- centos yum源配置
- sehll_if
- Shell数组的增删改查
- Web Project配置Hirbernate
- WPF的Binding功能解析
- 在PC上收发短信--Pidgin短信(Linux Pidgin插件)
- php xml常用函数的集合(比较详细)
- XSS高级实战教程
- sass笔记-4|像写脚本一样写Sass,把能交给Sass办的都交给它
- 基于Log4net插件
- c# Mongodb两个字段不相等 MongoDB原生查询
- 简单探讨spring整合mybatis时sqlSession不需要释放关闭的问题
- OpenStack-Neutron-VPNaaS-配置
- QT中设置窗口背景颜色
- es3的语法来模拟es5的bind方法
- Ionic下的JPush缺少统计代码问题解决方法
- python高级特性:切片/迭代/列表生成式/生成器
- STL_string.【转】C++中int、string等常见类型转换
- PHP微信公众号开发之自动回复
热门文章
- C#表格,表格信息、GridView使用。
- 10 — springboot整合mybatis — 更新完毕
- Identity Server 4 从入门到落地(七)—— 控制台客户端
- Jenkins:参数化构建:分支|模块|回滚|打印日志
- 零基础学习java------36---------xml,MyBatis,入门程序,CURD练习(#{}和${}区别,模糊查询,添加本地约束文件) 全局配置文件中常用属性 动态Sql(掌握)
- 【AWS】【TroubleShooting】EC2实例无法使用SSH远程登陆(EC2 failure for SSH connection)
- 【Linux】【Services】【SaaS】Docker+kubernetes(12. 部署prometheus/grafana/Influxdb实现监控)
- linux shell学习之shell流程控制
- java的父类声明,子类实例化(强制类型转换导致异常ClassCastException)
- 手写IOC实践