当前位置: 首页 > ai >正文

Redis从入门到上手-全面讲解redis使用.

一、概述

        Redis(Remote Dictionary Server)是一个开源的、高性能的键值对存储数据库。它可以用作数据库、缓存和消息代理系统,支持多种数据结构,如字符串、哈希、列表、集合、有序集合等。Redis 被广泛应用于缓存、会话存储、队列系统等场景,并因其高效的读写性能和灵活的功能而成为流行的技术栈

二、下载redis 安装包

官网: https://redis.io/download/

中文: http://www.redis.cn/

也可以在 github下载

github:https://github.com/MSOpenTech/redis/releases

三、解压并安装Redis

四、启动 Redis 临时服务

1、双击 redis-server.exe 启动 Redis

2、打开cmd,进入到刚才解压到的目录,启动临时服务:redis-server.exe redis.windows.conf(备注:通过这个命令,会创建Redis临时服务,不会在window Service列表出现Redis服务名称和状态,此窗口关闭,服务会自动关闭。)

五、修改 Redis 密码

设置密码将redis-windows.conf配置文件中的 #requirepass foobared 的#号去掉改为自己的密码即可。

设置好保存后,若要使设置起作用,需要重启redis服务,重启后需要输入密码。

六、redis雪崩

Redis 雪崩的发生通常是因为大量的缓存失效导致 Redis 实例在同一时间处理大量请求,超出了 Redis 的处理能力,导致 Redis 服务出现异常,甚至挂掉。当 Redis 挂掉时,应用程序会直接访问数据库,从而增加数据库的压力,可能导致数据库的崩溃,最终影响整个系统。

如何避免出现雪崩

1.合理设置缓存过期时间

避免缓存过期集中:如果多个缓存的过期时间设定相同,可能会导致大量缓存同时失效,Redis 会一次性处理大量请求,造成压力过大。为了避免这种情况,可以为不同的缓存项设置不同的过期时间。

2.缓存预热

在应用启动时,提前将常用的数据缓存到 Redis 中,这样可以避免在高并发的情况下频繁访问数据库。通过预热,应用在初期阶段就能获得缓存,而无需等待 Redis 动态加载数据。

定期预加载:根据业务需求,设置定时任务提前加载一些热点数据。

3. Redis 集群和主从架构

Redis 集群:将 Redis 部署为集群模式,分布式的 Redis 集群可以平衡请求负载,避免单节点的压力过大。集群中的节点可以分担存储与请求负载,避免单点故障。

主从架构:配置 Redis 主从复制架构,当主节点出现故障时,其他从节点可以接管,保证高可用。

七、redis穿透

缓存穿透指的是查询的数据在缓存中没有找到,并且请求会直接访问数据库。这会导致缓存失效,同时增加数据库的负担。当大量无效请求直接访问数据库时,会严重影响数据库性能,甚至导致数据库崩溃。

通常,缓存的目的是减轻数据库的压力,将常用数据保存在内存中以减少频繁的数据库访问。如果请求的数据本身不存在,或者请求的数据不需要存储在缓存中,就会导致缓存穿透。

为什么会发生缓存穿透?

查询的数据不存在:某些请求的数据根本不存在,比如无效的 ID 或者错误的查询条件。若直接访问数据库,数据库会返回一个空结果,并且该空结果没有被缓存下来。下次同样的请求再次查询时,又会绕过缓存,直接查询数据库。

恶意请求:一些恶意用户可能会发送大量的无效请求来进行测试或攻击,导致缓存无法发挥作用。

通过以上内容便可轻轻松松使用Redis.是不是超级简单.有任何问题欢迎留言哦!!!

重点!重点!重点!

遇到问题不用怕不如来我的知识库找找看,也许有意想不到的收获!!!

易网时代-易库资源-易库教程:.NET开发、Java开发、PHP开发、SqlServer技术、MySQL技术-开发资料大全-易网时代-易库资源-易库教程 (escdns.com)

http://www.xdnf.cn/news/1707.html

相关文章:

  • 【数据结构】_树和二叉树
  • VMware与Docker:虚拟化技术的双轨演进与融合实践
  • 【前端】【面试】在前端开发中,如何实现图片的渐进式加载,以及这样做的好处是什么?
  • MMsegmentation第一弹-(认识与安装)
  • 《无尽的尽头》今日开播 刘家祎大胆演绎林磊儿的“另一面”
  • python速成
  • 项目《基于Linux下的mybash命令解释器》(二)
  • STM32F407使用ESP8266实现阿里云OTA(中)
  • 第9章 多模态大语言模型
  • Android 智能家居开发:串口是什么,为什么android版本都比较低?粘包半包的原因以及处理思路,缓冲区处理,以及超时清空缓冲区....
  • 操作系统进程管理笔记
  • python 函数与模块
  • 项目中的政治斗争如何化解
  • 如何在 Windows上安装 Python 3.6.5?
  • Python 中 `r` 前缀:字符串处理的“防转义利器”
  • 第十三届蓝桥杯 2022 C/C++组 修剪灌木
  • Blender插件 三维花草植物自然景观生成器 Geo-Scatter 5.4.0
  • MODIS(MOD11A2)中国2000-2024年度平均地表温度(LST)数据集
  • AI下半场,出现了“超体”时刻
  • ctfhow——web入门214~218(时间盲注开始)
  • 13-DevOps-引入容器编排Kubernetes
  • 使用vue2开发一个在线旅游预订平台-前端静态网站项目练习
  • 6.学习笔记-SpringMVC-拦截器(P71-P74)
  • 得物业务参数配置中心架构综述
  • 离线部署kubernetes
  • DeepSeek系列(7):行业专属应用
  • Unity后处理全解析:从入门到优化
  • 序论文42 | patch+MLP用于长序列预测
  • C语言教程(十四):C 语言指针详解
  • 倚光科技:微透镜阵列低成本加工新范式