首页 > 数据库 >Redis缓存

Redis缓存

时间:2023-12-20 20:45:56浏览次数:35  
标签:缓存 测试 数据库 Redis key 数据

Redis(Remote Dictionary Server)是一个开源的高性能键值对(key-value)存储系统,常被用作数据库、缓存和消息代理。它支持多种数据结构,如字符串、哈希表、列表、集合和有序集合。

 

为什么要用Redis?

使用Redis有多个原因,包括:

  1. 高性能:Redis是基于内存存储计算的,其性能速度远超MySQL等数据库,计算速度非常快,可以大大提升数据访问速度,减少响应时间。
  2. 数据结构丰富:Redis支持多种数据结构,如字符串、哈希表、列表、集合和有序集合等,这些数据结构可以满足大部分常见的数据存储需求。
  3. 丰富的API支持:Redis提供了丰富的API支持,使得在存储和查询数据时可以很方便地使用,同时支持自定义查询API等。
  4. 成熟的生态:Redis的生态比较成熟,被广泛应用于大型公司中,拥有众多相关知识扩展和分析。
  5. 分布式集群化扩展性高:Redis的分布式集群化扩展性极高,能够支撑大量的数据吞吐,只要硬件支持。
  6. 持久化保证数据安全:Redis支持持久化操作,可以保证数据的持久性和安全性。
    1. 缓存策略优化:Redis提供了多种缓存策略,可以根据实际需求进行选择和优化,以最大程度地提高数据访问速度和降低对数据库的压力。

Redis 的数据读写速度如何?

Redis 的读写速度非常快,它的读取速度可以达到约110000次/s,写入速度可以达到约81000次/s。

 

Redis 常见的问题
  1. 缓存雪崩:当缓存未加载到缓存或者缓存大面积失效,或者缓存故障时,所有请求直接落在数据库上,这可能导致数据库无法承受压力而宕机。为了防止缓存雪崩,可以采取一些防御措施,例如使用随机数来避免缓存失效时间的一致性,快速从RDB或者AOF文件中恢复缓存,以及使用限流或降级策略来保护数据库。
  2. 缓存击穿:当热点key失效时,大量请求会涌入数据库中查询数据,这可能导致数据库压力过大而宕机。为了解决这个问题,可以在key失效时构建加锁机制,从数据库中获取数据后,其他请求需要等待锁释放后才能访问该key。
  3. 缓存穿透:当redis中查询的数据不存在时,大量的无效请求会进入数据库中查询数据,这也会导致数据库超负荷。为了解决这个问题,可以在入口处校验请求的合法性,例如通过使用 Bloom Filter 等数据结构来过滤不合法的请求。
  4. 缓存并发:当多个客户端同时对同一个key进行读写操作时,可能会导致数据的不一致性问题。为了解决这个问题,可以采取一些并发控制的策略,例如使用 Redis 的事务功能或者使用乐观锁等机制来保证数据的原子性和一致性。
  5. 大key问题:当redis中存储的数据过大或者存储了过多的hash、list等节点时,可能会导致内存占用过高和性能下降的问题。为了解决这个问题,可以采取一些优化措施,例如限制key的长度和数量、避免使用过于复杂的数据结构等。

 

只看查询的接口,目前还没有提测,看下大家是怎么测试的 吸取的经验

权益中台华为云容灾测试中,运维只能同步10G以下的缓存同步,会出现数据不一致的情况

1、对账 人工、系统

2、性能问题

3、只读,第一个版本 11.13~11.17

4、了解降级方案

 

 

 

 

 

 

 

 

redis链接方法

 

 

 

  redis:

    database: 0

    port: 25490

    password: coupon123456

    jedis:

      pool:

        maxActive: 8

        maxIdle: 8

        minIdle: 0

    # 本地启动项目需添加 hosts 10.60.200.200

    host: fc-coupon-test.rediscluster.cache.corpautohome.com

    timeout: 30000ms

 

 

 

 

针对redis的公用测试用例:

 

  1. 缓存功能测试:测试缓存的基本功能是否正常,例如,缓存的添加、删除、查询操作是否正常。
  2. 缓存性能测试:测试缓存的性能指标是否达到预期,包括缓存的读取速度、写入速度、命中率等。
  3. 缓存一致性测试:测试缓存与数据库或其他数据源的一致性,确保缓存数据的准确性和及时性。
  4. 缓存失效机制测试:测试缓存失效机制是否正常,包括缓存的过期时间、回收策略等。
  5. 缓存并发测试:测试多线程或多进程环境下缓存的并发性能和数据一致性。
  6. 缓存安全性测试:测试缓存的安全性,包括缓存的访问控制、加密、防止恶意攻击等。
  7. 缓存内存使用测试:测试缓存的内存使用情况,包括缓存占用的内存大小、内存泄漏等。
  8. 缓存恢复测试:测试缓存恢复机制是否正常,包括缓存恢复的速度、数据一致性等。

 

 

标签:缓存,测试,数据库,Redis,key,数据
From: https://www.cnblogs.com/qq909283/p/17917510.html

相关文章

  • Redis异常问题分析黄金一分钟
    Redis异常问题分析黄金一分钟背景同事发现一个环境redis比较卡顿,导致业务比较难以开展.问题是下午出现的.六点左右找到我这边.想着帮忙看看,问题其实没有定位完全,仅是发现了一个可能的点.所以想记录一下,备查步骤登录redis进行查看处理的过程:1.infomemor......
  • MongoDB、Elasticsearch、Redis、HBase应用场景分析
    1.MongoDB一个基于分布式文件存储的数据库系统,由C++编写,旨在为Web应用提供高速、可扩展、高性能的数据存储解决方案。MongoDB采用了文档型数据库模型,即数据以文档的形式存储,而文档是由键值对组成的。MongoDB的名称来自Hadoop创始人DougCutting的宠物狗Mongo。  应用场景......
  • Redis全文搜索教程之创建索引并关联源数据
    Redis全文搜索是依赖于Redis官方提供的RediSearch来实现的。RediSearch提供了一种简单快速的方法对hash或者json类型数据的任何字段建立二级索引,然后就可以对被索引的hash或者json类型数据字段进行搜索和聚合操作。这里我们把被索引的hash或者json类型数据叫做......
  • Redis数据库 | 发布订阅、主从复制、哨兵模式、缓存雪崩
    ......
  • 【转载】Redis 6.x 学习笔记
    参考http://www.redis.cn/https://www.runoob.com/redis/redis-data-types.htmlhttps://developer.aliyun.com/article/1095427https://zhuanlan.zhihu.com/p/445885116https://blog.csdn.net/liu_dongdong55/article/details/120881332https://blog.csdn.net/weixin_435......
  • Redis和Mysql如何保证数据一致性?
    1、redis作用:用于读数据库操作的缓存层,可以减少数据库的io,还能提升数据的io性能;无法保证数据的acid2、实现一致性方案:1、先更新数据库,在更新缓存2、先删除缓存再更新数据库3、最终一致性方案: (1)基于roketMQ可靠通信 (2)通过canal组件采集mysqlbinlog日志,同步redis......
  • Redis 主从集群搭建并使用 RedisTemplate 实现读写分离
    单机版的Redis能够承载并发访问的能力有限,对于绝大多数的系统而言,都是读多写少,系统之所以宕机,一般都是因为并发读操作太高导致的宕机,因此搭建Redis主从集群,实现读写分离,是一种有效的提高并发访问能力的方案。本篇博客介绍在一台虚拟机上,使用docker-compose模拟搭建一个【一......
  • uniGUI学习之禁用缓存(75)
    引用了第三方js,css等文件,但是因为缓存的原因,修改后没有及时生效。方法一:在ServerModule的OnHTTPCommand事件中,加入以下代码AResponseInfo.CacheControl:='max-age=0,no-cache,no-store,must-revalidate,proxy-revalidate';但是此方法有缺点,只支持exe模式,exe模式下所有......
  • 页面缓存
    页面缓存根据需求分为以下3类类小程序:根据用户的跳转方法来决定如何操作页面缓存堆栈历史记录:根据用户访问的历史记录缓存一定数量的页面,超过限定数量时采用新进先出面包屑:根据面包屑结构,缓存当前页面的祖先页面类小程序需要解决的问题实现以下常用跳转方法navigateTo......
  • 6.Redis,一站式高性能存储方案
    1.Redis入门Redis是一款基于键值对的NoSQL数据库,它的值支持多种数据结构:字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sortedsets)等。Redis将所有的数据都存放在内存中,所以它的读写性能十分惊人。同时,Redis还可以将内存中的数据以快照或日志的形式保......