首页 > 数据库 >Redis的作用,数据类型,缓存穿透,击穿和雪崩,Redis的索引模式【杭州多测师_王sir】

Redis的作用,数据类型,缓存穿透,击穿和雪崩,Redis的索引模式【杭州多测师_王sir】

时间:2023-07-20 09:57:38浏览次数:35  
标签:sir 缓存 数据类型 redis 索引 set sorted Redis

 

一、Redis的作用:
1.缓存数据,存在内存当中,效率非常高,比存储型数据快上千倍
2.计数器,比如用户访问了多少次,点赞数统计
3.可以限制 IP 的访问频率
4.可以设置失效时间,可以用来设置优惠券到期时间
5.任务队列:比如到货通知,内容更新
6.排行榜:redis 的有序集合类型非常适合处理榜单和排序
7.好友关系处理:redis 的集合类型可以处理交集并集,筛选共同好友,共同爱好之类的一些操作

二、Redis的基本数据类型:
string(字符串)
hash(哈希散列)
list(列表)
set(集合)
zset(sorted set:有序集合)

三、redis 的使用会遇到的问题:
1.缓存穿透
缓存穿透:指在redis缓存中不存在数据,这个时候只能去访问持久层数据库(MySQL,断电数据也不会消失),当用户很多时,缓存都没有命中就会造成很大压力
解决方案 :
1)布隆过滤器(对可能查询的数据先用hash存储)
2)缓存空对象:在没有的数据中存一个空,而这些空的对象会设置一个有效期

2.缓存击穿
缓存击穿:指在同一个时间内访问一个请求的请求数过多,而在这个时候缓存某个key失效了,这个时候就会冲向数据库照成缓存击穿
解决方案:
1)设置缓存永远不过期
2)加互斥锁,使用分布式锁,保证每个key只有一个线程去查询后端服务,而其他线程为等待状态。这种模式将压力转到了分布式锁上

3.缓存雪崩
缓存雪崩:在某个时间段,缓存集体过期、redis宕机
解决方案:给key的失效时间设置为随机时间,避免集体过期,双缓存,加互斥锁

四、redis的索引:
redis的索引模式基本是基于sorted set的,因sorted set有数值,数值就是索引,你可以根据它找到其他值。
Redis的索引模式有如下几种:
1.sorted set
2.字典排序
3.地理信息
4.文本查询
5.redis search
6.jredisearch

标签:sir,缓存,数据类型,redis,索引,set,sorted,Redis
From: https://www.cnblogs.com/xiaoshubass/p/17567481.html

相关文章

  • Redis
    Redis基于内存的key-value结构的非关系型数据库,远程字典服务特点基于内存存储,读写性能高适合存储热点数据(热点商品,资讯,新闻)使用范围广能做什么数据缓存消息队列注册中心发布订阅Redis入门官网:https://redis.io关系型数据库(RDBMS):MysqlOracleDB2SQLServer非......
  • 2-10-Mysql基本语句和常见数据类型
    1  SQL概述结构化查询语言(StructuredQueryLanguage)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。从上可以看出我们数据库相关工作职位大概两种:DBD和DBAdba是数据库管......
  • Redis主从复制和哨兵模式
    一、Redis主从复制 1、配置Redis服务器启动服务自动建立主从复制1)配置ntp时间服务器并同步时间2)修改主配置文件自动挂载节点3)启动服务(所有主机)4)查看复制群集状态2、手动配置主从复制  1)将第一台从节点加入到群集中[root@centos02~]#redis-cli-h192.168.100.20-p6379-a......
  • 初学C语言day03--数据类型及循环分支语句
    一、数据类型为什么要对数据进行分类?1、现实中的数据就是自带类别属性的2、对数据进行分类可以节约内存存储空间、提高运行速度存储空间的单位:Bit比特存储一个二进制位,只能存储0或者1,计算机存储数据的最小单位Byte字节存储八个二进制位,计算机存储数据的基本单位Kb102......
  • 观看视频历史记录放数据库还是redis
    观看视频历史记录放数据库还是Redis?随着互联网的飞速发展,视频网站逐渐成为人们获取信息、娱乐和学习的主要平台之一。在视频网站上观看的视频数量非常庞大,而用户观看的视频历史记录也具有一定的价值。那么,我们应该将观看视频历史记录放在数据库中还是Redis中呢?本文将从数据特点、......
  • 多主机 docker redis集群
    多主机DockerRedis集群在分布式系统中,Redis是一个常用的内存数据库,它提供了高性能的键值存储。然而,在面对大流量的情况下,单个Redis实例可能无法满足需求。为了提高可用性和性能,我们可以使用多主机的Redis集群。Docker是一个流行的容器化平台,它可以帮助我们轻松地创建和......
  • 多线程,redis怎么写数据
    项目方案:多线程写数据到Redis介绍在现代应用程序开发中,Redis是一个非常流行的内存数据库,它提供了高性能的键值存储。然而,在高并发场景下,写入大量数据到Redis可能成为性能瓶颈。为了解决这个问题,我们可以使用多线程来提高写入数据到Redis的效率。本文将介绍一个项目方案,通过......
  • 使用上一题安装的Redis服务。在Redis中,AOF配置为以三种不同的方式在磁盘上执行wr
    Redis中AOF执行方式的配置详解在使用Redis时,持久化是非常重要的一个功能,它可以确保数据在Redis重启后不会丢失。Redis提供了两种持久化方式:RDB(RedisDatabase)和AOF(AppendOnlyFile)。本文将重点介绍AOF配置以及如何以三种不同的方式在磁盘上执行AOF。AOF配置在Redis的配置文件re......
  • @EnableRedisIndexedHttpSession
    使用@EnableRedisIndexedHttpSession增强SpringSession在Spring框架中,Session管理是Web应用开发中常见的需求之一。SpringSession是Spring提供的解决方案之一,它可以用于替代传统的Servlet容器提供的Session管理机制。SpringSession提供了一种使用不同的存储后端(如内存、Redis、......
  • 转:springboot2.0 集成redis服务详解,以及 (Lettuce & Jedis)
    springboot2.0集成redis服务详解,以及(Lettuce&Jedis)   ......