redis
文章平均质量分 74
Redis是一种内存数据存储系统,也被称为键值存储数据库。Redis的设计目标是提供一个快速、可靠和易于使用的键值存储数据库,适用于高性能的应用程序。
像鸟一样菜
乾坤未定,你我皆是黑马
展开
-
Redis常见面试题(缓存击穿、穿透、雪崩)
Redis常见面试题(缓存击穿、穿透、雪崩) 击穿 场景: 一般由于redis中的数据到期,同时并发用户特别多,此时大量请求压到数据库上。 解决思路: 根据redis是单进程单实例的特性,当高流量进入redis时,可以认为是在队列中依次执行,当请求发现key过期时,可以设置锁。 流程: 请求到达redis,发现key过期,查看是否有锁,如果没有回到队列排队。 设置锁,用setnx(),也就是当key不存在时再设置,防止其他线程已经设置锁。 拿到锁后去数据库中取数据,返回后释放锁。 问题1: 如果拿到锁以原创 2022-05-06 20:40:46 · 1467 阅读 · 0 评论 -
Redis——基于Spring的开发示例(连接、序列化、high/low api)
文章目录 一、基本开发1、建立spring boot项目2、与vm中的redis建立连接3、测试连接 二、high/low API及序列化1、high level apiRedisTemplateStringRedisTemplate 2、low level api3、操作复值——hash1、原始方式存取2、封装成JSON对象存取(Jackson2HashMapper)3、设置序列化器4、自定义 Template 三、开发流程总结 在前面的文章中,我们学习了有关 R.转载 2022-04-22 17:58:20 · 248 阅读 · 0 评论 -
Redis集群第二篇之数据分区
Redis集群第二篇之数据分区 上篇我们提到,redis单机会存在三个问题 单点故障 容量有限 压力过大 通过哨兵(Sentinel),我们可以解决其中两个问题(单点故障和压力过大),但是容量有限的问题怎么解决呢? 首先我们可以通过业务逻辑将数据拆分给不同的redis(商品类、购物车类等),如果根据业务逻辑拆分以后还是很大呢? 那么就需要数据分区: 不同的分区实现方案 客户端分区就是在客户端就已经决定数据会被存储到哪个redis节点或者从哪个redis节点读取。大多数客户端已经实现了客户端分区。 代理原创 2022-04-18 17:05:04 · 557 阅读 · 0 评论 -
Redis集群第一篇之哨兵(Sentinel)
Redis集群第一篇之哨兵(Sentinel) Redis单机存在的问题: 单点故障 容量有限 压力过大 Redis使用默认的异步复制,其特点是低延迟和高性能 解决方案思路: 使用AKF拆分原则: AKF旨在提供一个系统化的扩展思路。AKF 把系统扩展分为以下三个维度: X 轴:直接水平复制应用进程来扩展系统。 Y 轴:将功能拆分出来扩展系统。 Z 轴:基于用户信息扩展系统。 redis做主从或主备 主从、主备区别: 主备:客户端只能访问主,备机只为了接替主机,备机不参与业务。 主从:客户端原创 2022-04-11 13:38:59 · 1469 阅读 · 0 评论 -
Redis持久化
Redis持久化 Redis 提供了不同级别的持久化方式: RDB:在指定的时间间隔能对数据进行快照存储. AOF:持久化方式记录每次对服务器写的操作,当服务器重启时会重新执行这些命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件末尾,Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大. 如果希望数据在服务器运行的时候存在,也可以不使用任何持久化方式. 也可以同时开启两种持久化方式,,在这种情况下, 当redis重启的时候会优先载入AOF文件来恢复原始的数据,因原创 2022-04-05 16:38:19 · 81 阅读 · 0 评论 -
Redis事务
Redis事务 MULTI 、 EXEC 、 DISCARD 和 WATCH 是 Redis 事务相关的命令。事务可以一次执行多个命令, 并且带有以下两个重要的保证: 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。 EXEC 命令负责触发并执行事务中的所有命令: 如果客户端在使用 MULTI 开启了一个事务之后,却因为断线而没有成功执行 EXEC ,那么原创 2022-03-22 18:17:54 · 60 阅读 · 0 评论 -
Redis发布订阅(pubsub)
Redis发布订阅(pub/sub) 订阅,取消订阅和发布实现了发布/订阅消息范式(引自wikipedia),发送者(发布者)不是计划发送消息给特定的接收者(订阅者)。而是发布的消息分到不同的频道,不需要知道什么样的订阅者订阅。订阅者对一个或多个频道感兴趣,只需接收感兴趣的消息,不需要知道什么样的发布者发布的。这种发布者和订阅者的解耦合可以带来更大的扩展性和更加动态的网络拓扑。 举个例子: 我们在第一个客户端中订阅一个叫CCTV的频道 127.0.0.1:6379> SUBSCRIBE CCTV R原创 2022-03-22 17:05:24 · 782 阅读 · 0 评论 -
Redis为什么使用跳跃表来实现有序集合(Sorted Set)而不是红黑树或者平衡二叉树呢
Redis 的有序集合(Sorted Set)就是用跳表来实现的。跳跃表是一种随机化的数据结构。我们可以把他看做 Java 中 SortedSet 和HashMap 的结合体,set 保证了value 值就有唯一性,且可以保证每一个value 有一个自己的权重值 socre ,用so...转载 2022-03-16 16:15:30 · 1056 阅读 · 0 评论 -
Redis挂载布隆过滤器
布隆过滤器安装步骤 下载地址: https://redis.io/(英文网站) 在modules中找到RedisBloom,右键打开github地址, 复制ZIP链接地址,注意版本,建议安装最新版 weget https://github.com/RedisBloom/RedisBloom/archive/refs/tags/v2.2.13.zip 安装unzip yum install -y unzip zip 解压布隆过滤器压缩包 unzip v2.2.13.zip 切换到解压原创 2022-03-14 17:20:53 · 749 阅读 · 0 评论 -
Redis的基本数据类型
Redis的基本数据类型 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件原创 2022-03-14 17:07:45 · 1303 阅读 · 0 评论 -
Linux下Redis安装步骤
Redis Redis安装步骤 下载地址: https://redis.io/(英文网站) http://redis.cn/(中文网站) 在redis下载网站,复制下载地址,然后再linux中通过wget下载 wget http://download.redis.io/releases/redis-6.0.6.tar.gz 解压 tar -xf redis-6.0.6.tar.gz 安装 make 如果安装失败,检查是否安装gcc,或者gcc版本是否过低 查看gcc版本 gcc -v原创 2022-03-10 22:35:47 · 998 阅读 · 1 评论