Redis作缓存
缓存策略三要素:缓存命中率 缓存更新策略 最大缓存容量。衡量一个缓存方案的好坏标准是:缓存命中率。缓存命中率越高,缓存方法设计的越好。
三者之间的关系为:当缓存到达最大的缓存容量时,会触发缓存更新策略,而缓存更新策略影响到了缓存命中率。可见,缓存方案的好坏依赖于缓存最大量的设置,以及缓存更新策略的选择。
对于经常变动的数据,不适合做缓存。对于静态、读写比高(一般10:1以上)的数据做缓存。
常见的缓存更新策略有:
1 FIFO 队列,先进先出,典型应用:MySQL的 query cache,采用的就是这种简单的缓存更新策略
2 LFU:最少使用 ,借助计数器实现
3 LRU:最久未被使用,借助计数器和队列实现
对于Redis,当达到maxmemory时,采用什么策略删除key,有五个可选项可根据应用场景进行选择:
volatile-lru 采用LRU算法删除带有expire的key(默认)
allkeys-lru  采用LRU算法删除任意key
volatile-random 任意删除带有expire的key
allkeys-random  删除任意key
volatile-ttl 删除最接近expire的key
noeviction  不删除,直接对写命令返回错误Redis作缓存的更多相关文章
- springBoot整合redis(作缓存)
		springBoot整合Redis 1,配置Redis配置类 package org.redislearn.configuration; import java.lang.reflect.Method ... 
- 用Redis作Mysql数据库缓存
		使用redis作mysql数据库缓存时,需要考虑两个问题: 1.确定用何种数据结构存储来自Mysql的数据; 2.在确定数据结构之后,用什么标识作为该数据结构的键. 直观上看,Mysql中的数据都是按 ... 
- redis(二)--用Redis作MySQL数据库缓存
		用Redis作MySQL数据库缓存,必须解决2个问题.首先,应该确定用何种数据结构存储来自mysql的数据:在确定数据结构之后,还要考虑用什么标识作为该数据结构的键. 直观上看,Mysql中的数据都是 ... 
- openresty使用redis作本地缓存
		一,为什么要使用redis作本地缓存? 1,使用缓存通常会有三层 当使用openresty作为web服务器时,我们更看重是的它可以通过lua编程的扩展能力,就openresty而言,它可以实现的功能非 ... 
- 知乎技术分享:从单机到2000万QPS并发的Redis高性能缓存实践之路
		本文来自知乎官方技术团队的“知乎技术专栏”,感谢原作者陈鹏的无私分享. 1.引言 知乎存储平台团队基于开源Redis 组件打造的知乎 Redis 平台,经过不断的研发迭代,目前已经形成了一整套完整自动 ... 
- Spring Boot + Mybatis + Redis二级缓存开发指南
		Spring Boot + Mybatis + Redis二级缓存开发指南 背景 Spring-Boot因其提供了各种开箱即用的插件,使得它成为了当今最为主流的Java Web开发框架之一.Mybat ... 
- 从单机到2000万 QPS 并发的 Redis 高性能缓存实践之路
		1.引言 知乎存储平台团队基于开源Redis 组件打造的知乎 Redis 平台,经过不断的研发迭代,目前已经形成了一整套完整自动化运维服务体系,提供很多强大的功能.本文作者陈鹏是该系统的负责人,本次文 ... 
- 如何用redis做缓存
		redis缓存 在互联网应用中经常需要用redis来缓存热点数据. redis数据在内存,可以保证数据读取的高效,接近每秒数十万次的吞吐量 减少下层持久层数据库读取压力,像mongodb,每秒近千次读 ... 
- SpringAOP与Redis搭建缓存
		近期项目查询数据库太慢,持久层也没有开启二级缓存,现希望采用Redis作为缓存.为了不改写原来代码,在此采用AOP+Redis实现. 目前由于项目需要,只需要做查询部分: 数据查询时每次都需要从数据库 ... 
随机推荐
- 关于Marshal 类的整理
			在两个不同的实体(两个线程或者进程甚至机器.在Managed和Unmanaged之间)进行方法调用和参数传递的时候,具体的调用方法和参数的内存格式可能需要一定的转换,这个转换的过程叫做Marshal. ... 
- Linux(Centos) 设置显示vim行号
			1.修改vimrc文件 vim /etc/vimrc 2.在最后添加 set nu 如下图片所示 然后wq! 保存退出 
- java源码——计算大于一个数的最小素数
			根据输入数字,计算大于一个数的最小素数. 话不多说,直接贴码. package com.fuxuemingzhu.countprime.main; import java.util.Scanner; ... 
- LeetCode每日一题打卡组队监督!刷题群!
			近 2000 人已经加入共同刷题啦! 群友每天都会在群里给大家讲解算法题 每周日「负雪明烛」组织直播讲题 我相信来看我博客的大部分人都是通过LeetCode刷题过来的.最近发现LeetCode中文网站 ... 
- 【LeetCode】145. Binary Tree Postorder Traversal 解题报告 (C++&Python)
			作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 递归 迭代 日期 题目地址:https://leetc ... 
- 【LeetCode】139. Word Break 解题报告(Python & C++)
			作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ... 
- 【LeetCode】817. Linked List Components 解题报告(Python & C++)
			作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ... 
- Bean拷贝工具
			Apache BeanUtils Spring BeanUtils cglib BeanCopier Hutool BeanUtil Mapstruct Dozer 1.Apache BeanUti ... 
- 浏览器Cookie无法删除问题
			1.写Cookie时添加路径: //写cookies,设置过期时间为30天,并设置path为根目录 function setPathCookie(name,value) { var Days = 30 ... 
- vue使用v-chart图表出现的问题
			npm i v-charts echarts -S 引入 import VCharts from 'v-charts' Vue.use(VCharts) 后发现报错,后来发现安装echarts版本太高 ... 
