iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >redis整理
  • 646
分享到

redis整理

redis整理 2015-09-29 02:09:43 646人浏览 猪猪侠
摘要

Redis Redis是一个key-value存储系统。 Redis支持五种数据类型: string(字符串) list(列表) hash(hash表) set(集合) zset(有序集合) 和memcached类似,redi

redis整理

Redis

Redis是一个key-value存储系统。

Redis支持五种数据类型:
  • string字符串
  • list(列表)
  • hash(hash表)
  • set集合
  • zset(有序集合)

memcached类似,redis支持的数据类型更丰富、数据能持久化。
memcached把数据全部存储在内存中,断电后会挂掉,数据不能超过内存大小。
而redis`数据会定期备份到硬盘上。

落地策略

  • RDB持久化(snapshotting):快照,整体备份。在指定的时间间隔内将内存中的数据集快照写入磁盘,实际上是fork一个子线程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。
  • AOF持久化(append-only-file):以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。

过期策略

  • 定期删除:redis会把设置了过期时间的key放在单独的字典中,定时遍历来删除到期的key
    • 每100ms从过期字典中随机挑选20个,把其中过期的key删除
    • 如果过期的key占比超过1/4,重复步骤1
  • 惰性删除
    • 过期的key并不一定会马上删除,还会占用着内存。当你真正查询这个key时,redis会检查一下,这个设置了过期时间的key是否过期了,如果过期了就会删除,返回空。
  • 内存淘汰机制
    redis内存超出物理内存限制时,会和磁盘产生swap,这种情况性能极差,一般是不允许的。
    (1)noeviction:拒绝写操作,读、删除可以正常使用。默认策略
    (2)allkeys-lru:移除最近最少使用的key,最常用的策略
    (3)allkeys-random:随机删除某个key
    (4)volatile-lru:在设置了过期时间的key中,移除最近最少使用的key
    (5)volatile-random:在设置了过期时间的key中,随机删除某个key
    (6)volatile-ttl:在设置了过期时间的key中,把最早要过期的key优先删除

Redis缓存Mysql数据一致性方案

高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问mysql数据库
请求先访问redis缓存,如果缓存中有数据,直接加载数据,如果缓存中没有数据,再访问数据库,数据库会将数据放入redis中,然后加载数据。
读取缓存一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存redis和数据库Mysql间的数据一致性问题。

  • 如果先删除了缓存Redis,还没有来得及写库MySQL,另一个线程就来读取,发现缓存为空,则去数据库中读取数据写入缓存,此时缓存中没脏数据。
  • 如果先写了库,在删除缓存之前,写库的线程宕机了,没有删除掉缓存,则也会出现数据不一致情况。

因为写和读是并发的,没法保证顺序,就会出现缓存和数据库的数据不一致的问题。

解决方案:异步更新缓存(基于订阅binlog的同步机制)
MySQLbinlog增量订阅消费+消息队列+增量数据 更新到redis
(1)读redis:热数据基本都在redis
(2)写MySQL:增删改都是操作MySQL
(3)更新redis数据:MySQL的数据操作binlog,来更新到redis

注意:MySQL实现主从一致性,也是基于订阅binlog来实现增量操作。
binlog:是MySQL的二进制文件,用于记录MySQL的数据更新(insertupdatedelete操作)。

您可能感兴趣的文档:

--结束END--

本文标题: redis整理

本文链接: https://www.lsjlt.com/news/5172.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringBoot整合Redis
    SpringBoot中的Redis 在 SpringBoot2.x 之后,原来使用的jedis被替换为了lettuce jedis : 采用的直连,多个线程操作的话,是不安全的,如果想要避免不安全的,使用 jedis pool 连接 池! ...
    99+
    2023-09-07
    redis spring boot java
  • Spring整合Redis完整实例代码
    做过大型软件系统的同学都知道,随着系统数据越来越庞大,越来越复杂,随之带来的问题就是系统性能越来越差,尤其是频繁操作数据库带来的性能损耗更为严重。很多业绩大牛为此提出了众多的解决方案和开发了很多框架以优化这种频繁操作数据库所带来的性能损耗,...
    99+
    2023-05-31
    spring redis edi
  • springboot整合redis配置
    1、引入pom依赖 org.springframework.boot spring-boot-starter-data-redis 2、增加配置类 RedisCo...
    99+
    2023-08-23
    redis spring boot java
  • springboot如何整合Redis
    这篇文章主要介绍springboot如何整合Redis,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!引入依赖:在pom文件中添加redis依赖:<dependency>   ...
    99+
    2023-06-19
  • Redis入门基础常用操作命令整理
    目录Redis基础一、redis是单线程二、关于数据库的常用操作1. 默认数据库2. 切换数据库3. 查看数据库大小4. 清空数据库三、关于Redis-Key的常用操作1. set ...
    99+
    2024-04-02
  • redis与ssm如何整合
    这篇文章主要介绍redis与ssm如何整合,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!SSM+redis整合ssm框架之前已经搭建过了,这里不再做代码复制工作。这里主要是利用redis去做mybatis的二级缓存,...
    99+
    2023-05-30
    ssm redis
  • 使用SpringBoot中整合Redis
    目录SpringBoot中整合RedisSpringBoot整合Redis改不了database问题SpringBoot中整合Redis 本次,我们以IDEA + SpringBoo...
    99+
    2024-04-02
  • SpringBoot中怎么整合Redis
    SpringBoot中怎么整合Redis,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、安装首先要在本地安装一个redis程序,安装过程十分简单(略过),安装完成后进入到...
    99+
    2023-06-16
  • SpringBoot如何整合Druid、Redis
    这篇文章主要介绍SpringBoot如何整合Druid、Redis,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.整合Druid1.1Druid简介Java程序很大一部分要操作数据库,为了提高性能操作数据库的时候,...
    99+
    2023-06-29
  • Spring基于注解整合Redis完整实例
    在《Redis之——Spring整合Redis》一文中,向大家介绍了如何将spring与Redis整合起来,但不是基于注解的形式,很多同学都希望能够通过注解的形式来简单的将Spring与Redis整合起来,这样,在使用的时候,只需要在相应的...
    99+
    2023-05-31
    spring redis 注解
  • SpringBoot整合Redis将对象写入redis的实现
    目录1、环境搭建 2、代码编写3、测试1、环境搭建 创建一个SpringBoot项目,普通的web项目就可以了,我这里使用的是start.aliyun 引入依赖: (1)...
    99+
    2024-04-02
  • SpringBoot整合Redis及Redis工具类撰写实例
    目录一、Maven依赖二、application.properties中加入redis相关配置三、写一个redis配置类四、写一个Redis工具类五、小结SpringBoot整合Re...
    99+
    2024-04-02
  • spring如何整合redis使用
    小编给大家分享一下spring如何整合redis使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.简单介绍redis 是基于...
    99+
    2024-04-02
  • spring怎么整合redis集群
    要整合Spring与Redis集群,可以按照以下步骤进行操作: 添加Redis集群依赖:在Spring Boot项目的pom.xm...
    99+
    2023-10-25
    redis spring
  • SpringBoot整合Redis案例分析
    这篇文章主要介绍了SpringBoot整合Redis案例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot整合Redis案例分析文章都会有所收获,下面我们一起来看看吧。Springboot整...
    99+
    2023-06-19
  • SpringBoot整合Redis之编写RedisConfig
    编写RedisConfig首先我们要明白RedisConfig中需要包含什么,首先看看我们直接使用RedisTemplate的问题,我们就知道RedisConfig要包含什么了,我们...
    99+
    2024-04-02
  • SpringBoot中如何整合Lettuce redis
    这篇文章主要介绍“SpringBoot中如何整合Lettuce redis”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“SpringBoot中如何整合Lettuce redis”文章能帮助大家解决问...
    99+
    2023-06-08
  • Workerman3.0.7如何整合Redis和ThinkPHP3.2.3
    这篇文章主要为大家展示了“Workerman3.0.7如何整合Redis和ThinkPHP3.2.3”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Workerm...
    99+
    2024-04-02
  • 介绍SpringBoot 整合 Redis 缓存
    无法支撑这么大的数据访问量,redis使用的时候可以单独利用客户端引入jar包操作即可,实际项目中都是和框架进行整合的比较多,此处演示利用springboot整合1.首先导入使用Maven导入jar包...
    99+
    2023-06-02
  • SpringBoot怎么整合Redis将对象写入redis中
    本篇内容主要讲解“SpringBoot怎么整合Redis将对象写入redis中”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot怎么整合Redis将对象写入redis中”吧!1、...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作