reids小记
时间:2019-01-19
本文章向大家介绍reids小记,主要包括reids小记使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Redis 优势:
性能极高
丰富的数据类型
原子 – Redis的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。
单个操作是原子性的。多个操作也支持事务,即原子性,通过MULTI和EXEC指令包起来
应用场景
session共享,数据库缓存,不同项目可以共享一些常用数据,数据订阅 ,也可以把它当作异步消息暂存区,
也可当作nosql(数据库)来用,还可以当作搜索引擎数据库来用等等.
常见问题
穿透:是指高并发查询一些缓存中没有的数据,使得请求都到数据库中查询使得数据库宕机发生异常;
1.使用互斥锁排队方式:在查询到value的值为空时上锁从数据库中查询完值时再释放锁(分布式锁)
2.使用布隆过滤器:将可能查询的数据用哈希存储到一个足够大的bitMap中,一个一定不存在的值使用布隆算法得到然后
被bitMap给拦截掉(精确度存在一定缺陷);
3.将value的数据缓存,缓存时间设置得短一点;
雪崩:是指缓存中数据在一定时间内失效,造成请求都到数据库中造成数据库异常。
1.使用互斥锁排队方式:在查询到value的值为空时上锁从数据库中查询完值时再释放锁(分布式锁)
2.建立备份缓存,缓存A和缓存B,A缓存设置超时时间B缓存不设置,读取的时候先读取A缓存如果没有再从B缓存读取,
并且更新缓存A和B缓存
3.不同的key在缓存的时候设置超时间加上一个随机的时间,使得超时时间不固定。
1、保持缓存层服务器的高可用。 –监控、集群、哨兵。当一个集群里面有一台服务器有问题,让哨兵踢出去。
2、依赖隔离组件为后端限流并降级。
比如推荐服务中,如果个性化推荐服务不可用,可以降级为热点数据。
3、提前演练。
演练 缓存层crash后,应用以及后端的负载情况以及可能出现的问题。
对此做一些预案设定。
- Elasticsearch大文件检索性能提升20倍实践(干货)
- Elasticsearch聚合优化 | 聚合速度提升5倍!
- Elasticsearch聚合后分页深入详解
- 可扩展机器学习——线性回归(linear Regression)
- 简单易学的机器学习算法——Label Propagation
- 利用Theano理解深度学习——Convolutional Neural Networks
- 持续精进——我的2017年终总结
- 实战 | Elasticsearch打造知识库检索系统
- Elasticsearch实战 | 必要的时候,还得空间换时间!
- 转--以io.Writer为例看go中的interface{}
- Go支持https协议的简单例子
- Elasticsearch索引增量统计及定时邮件实现
- 机器学习中的特征空间
- 简单易学的机器学习算法——马尔可夫链蒙特卡罗方法MCMC
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 小知识:解决EXP-00003的报错
- Mysql5中Packet for query is too large (3396053 > 1048576),数据量太大解决方案
- 关于 servlet 的这个问题,你能答对吗?
- MYSQL数据优化常用配置参数
- Hadoop分块存储解析及还原分块存储的文件
- ValueError: too many values to unpack (expected 2)
- VMware15更新后克隆Centos7发现网卡起不来了
- 基于SSH的医院在线挂号
- Linux-远程拷贝(scp命令)
- Kettle使用JavaScript代码处理数据
- Hadoop入门---(wordcount)统计单词出现的次数
- JS去除字符串的空格
- insertionSoft(插入排序) 2.1-1 And 重写insertionSoft 2.1-2
- Swagger-Springboot-mybatis-mysql
- Python+java+websocket+SpringMVC实时监控数据库中的表