redis之(十一)redis实现缓存的功能

[一]redis实现缓存的原理

--->利用键的失效时间设置实现缓存技术

--->由于redis的内存有限,可以在redis的配置文件里设置maxmemory的参数。来限制redis最大可用内存的大小。(单位是字节),当超出这个限制的时候,redis可以依据maxmemory-policy参数指定的策略来删除不需要的键直到redis占用的内存小于指定内存

--->LRU(least Recently Used)最近最少使用

--->事实上redis并不回准确低将整个数据库中最久未被使用的键删除。而是每次从数据库中随机取3个键并删除这3个键中最久未被使用的键。删除过期时间最接近的键也是这个方法。“3”这个数字可以通过redis的配置文件maxmemory-samples参数设置

[二]redis支持的淘汰键的策略

规则 说明
volatile-lru 使用LRU算法删除一个键(只对设置了过期时间的键)
allkeys-lru 使用LRU算法删除一个键
volatile-random 随机删除一个键(只对设置了过期时间的键)
allkeys-random 随机删除一个键
volatitle-ttl 删除过期时间最近的一个键
noeviction 不删除键只返回错误
时间: 2024-10-09 00:49:26

redis之(十一)redis实现缓存的功能的相关文章

用Redis作为Mysql数据库的缓存【转】

用Redis作Mysql数据库缓存,必须解决2个问题.首先,应该确定用何种数据结构存储来自Mysql的数据:在确定数据结构之后,还要考虑用什么标识作为该数据结构的键. 直观上看,Mysql中的数据都是按表存储的:更微观地看,这些表都是按行存储的.每执行一次select查询,Mysql都会返回一个结果集,这个结果集由若干行组成.所以,一个自然而然的想法就是在Redis中找到一种对应于Mysql行的数据结构.Redis中提供了五种基本数据结构,即字符串(string).列表(list).哈希(has

Redis整合Spring结合使用缓存实例

摘要:本文介绍了如何在Spring中配置redis,并通过Spring中AOP的思想,将缓存的方法切入到有需要进入缓存的类或方法前面. 一.Redis介绍 什么是Redis? redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set –有序集合)和hash(哈希类型).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作

缓存系列之四:redis持久化与redis主从复制

一:redis 虽然是一个内存级别的缓存程序,即redis 是使用内存进行数据的缓存的,但是其可以将内存的数据按照一定的策略保存到硬盘上,从而实现数据持久保存的目的,redis支持两种不同方式的数据持久化保存机制,分别是RDB和AOF,具体实现如下: 1.1:redis数据持久化概括:redis 支持两种数据持久保存方式,分别是RDB和APFRDB可以设置在多长时间内有多少个key发生变化就执行RDB快照.AOF持久化是服务器记录和保存redis执行的所有命令,并在服务重启的时候重新执行全部的命

Redis整合Spring结合使用缓存实例(转)

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文介绍了如何在Spring中配置redis,并通过Spring中AOP的思想,将缓存的方法切入到有需要进入缓存的类或方法前面. 一.Redis介绍 什么是Redis? redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和h

Redis进阶实践之十一 Redis的Cluster集群搭建

原文:Redis进阶实践之十一 Redis的Cluster集群搭建 一.引言 本文档只对Redis的Cluster集群做简单的介绍,并没有对分布式系统的所涉及到的概念做深入的探讨.本文只是针对如何设置集群.测试和操作集群做了简述,并且从用户的角度描述了系统的行为,并不涉及Redis集群规范中所包含的细节.但是,本教程试图从最终用户的角度来解释有关Redis的Cluster集群的可用性和一致性的特点,并以简单易懂的方式讲解. 请注意,本教程需要使用Redis 3.0版本或更高版本. 如果您打算部署

Redis(二十一):Redis性能问题排查解决手册(转)

性能相关的数据指标 通过Redis-cli命令行界面访问到Redis服务器,然后使用info命令获取所有与Redis服务相关的信息.通过这些信息来分析文章后面提到的一些性能指标. info命令输出的数据可分为10个类别,分别是: server clients memory persistence stats replication cpu commandstats cluster keyspace 这篇主要介绍比较重要的2部分性能指标memory和stats. 需要注意的是info命令返回的信息

Redis简介以及和其他缓存数据库的区别

一.Redis简介 Redis 是一个开源的内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如字符串(Strings),散列(Hashes),列表(Lists),集合(Sets),有序集合(Sorted Sets或者是ZSet) 与范围查询, Bitmaps,Hyperloglogs 和 地理空间(Geospatial)索引半径查询. 其中常见的数据结构类型有String.List.Set.Hash.ZSet这5种. Redis 内置了复制(Replic

使用Redis和Java进行数据库缓存

使用Redis和Java探索数据库缓存,并查看一些不同的缓存策略.最近在优锐课学习收获颇多,记录下来大家一起进步! 为什么数据库缓存如此重要? 你在数据库中拥有的信息越多,随着时间的推移它将变得越慢. 即使是经过精心设计以支持许多并发请求的数据库管理系统,最终也会达到其极限. 数据库缓存是处理这些性能问题的最常见策略之一.缓存涉及将数据库查询的结果保存在更快,更易于访问的位置.正确完成缓存后,缓存将减少查询响应时间,减少数据库负载并降低成本. 但是,缓存也需要谨慎处理,因为它们实际上是在单独的位

使用redis作为mybatis的二级缓存

本次介绍一下使用mybatis-redis项目作为mybatis的二级缓存在生产项目中的配置与应用. 首先,在pom中添加一下依赖: <!-- mybatis cache --> <dependency>     <groupId>org.mybatis.caches</groupId>     <artifactId>mybatis-redis</artifactId>     <version>1.0.0-beta2&

初学Redis(3)——用Redis作为Mysql数据库的缓存

把Mysql结果集缓存到Redis的字符串或哈希结构中以后,我们面临一个新的问题,即如何为这些字符串或哈希命名,也就是如何确定它们的键.因为这些数据结构所对应的行都属于某个结果集,假如可以找到一种唯一标识结果集的方法,那么只需为这些数据结构分配一个唯一的序号,然后把结果集标识符与该序号结合起来,就能唯一标识一个数据结构了.于是,为字符串和哈希命名的问题就转化为确定结果集标识符的问题. 经过调研,发现一种较为通用的确定结果集标识符的方法.正如我们所知道的,缓存在Redis中的结果集数据都是利用se