
redis
文章平均质量分 67
redis
w_t_y_y
个人在线笔记~,其他博客:https://www.zhihu.com/people/wtyy666
展开
-
redis监控
因为Redis是单线程模型(只能使用单核),来处理所有客户端的请求,且Redis默认允许客户端连接的最大数量是10000。因此监控客户端连接数是非常重要的,因为客户端创建连接数的数量可能超出预期的数量,也可能是客户端端没有有效的释放连接。Redis的监控指标主要通过INFO命令获取,该命令可以返回丰富的运行监控信息。因为Redis是个单线程模型,客户端过来的命令是按照顺序执行的。(1)使用Hash Redis在储存小于100个字段的Hash结构上,其存储效率是非常高的。有关redis服务器的常规信息。原创 2024-03-14 11:13:44 · 1395 阅读 · 0 评论 -
Redis应用(10)文件分发
一、介绍。原创 2024-01-18 17:14:51 · 405 阅读 · 0 评论 -
Redis应用(9)信号量
一、介绍。原创 2024-01-18 15:34:44 · 417 阅读 · 0 评论 -
Redis应用(8)任务队列
一、介绍二、先进先出队列。原创 2024-01-18 15:36:49 · 428 阅读 · 0 评论 -
Redis应用(7)搜索引擎
一、基于Redis的搜索功能。原创 2024-01-19 11:46:13 · 416 阅读 · 0 评论 -
Redis应用(6)接口限流
见Redisson的使用场景一文。原创 2024-11-06 17:52:07 · 184 阅读 · 0 评论 -
Redis应用(5)MQ
redis自带消息发布/订阅功能,可以充当mq使用。StringRedisTemplate使用MQ见。原创 2024-09-24 09:33:40 · 249 阅读 · 0 评论 -
Redis应用(4)分布式锁(4.2)实现基于Redis的分布式锁
业务case;实现方案及对比原创 2024-01-02 15:49:00 · 652 阅读 · 0 评论 -
Redis应用(4)分布式锁(4.1)并发问题与分布式锁引入
一、前提:现有两张表:product商品表:userorder订单表:现有抢购活动:package com.product.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation....原创 2018-09-04 16:33:20 · 1633 阅读 · 1 评论 -
Redis应用(三)实现自动补全
1、方案:数据量少时使用Redis存储列表,Redis仅做存储功能,自动补全在代码中完成,代码获取整个列表再来进行匹配。还可以实现记忆补全,当用户选择性补全后,可以将该元素从列表中LREM删除再LPUSH推进最左端,下次再取出来就靠前了。1、方案:对于非常长的列表,仅仅为了找到几个元素而获取整个列表,比较浪费资源。原创 2024-01-18 11:43:32 · 529 阅读 · 0 评论 -
Redis应用(2)实现session共享
新建两个工程,一个部署在本地8080端口,一个部署在本地9090端口,两个配置到一个redis上一、8080端口工程:1、pom:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocatio...原创 2018-09-21 16:20:36 · 2571 阅读 · 1 评论 -
Redis应用(1)缓存(1.2)使用
当MySQL中的数据发生变化时,触发器或者消息队列会立即通知Redis进行更新。可以将MySQL用于写操作,而将Redis用于读操作。这种方法的优点是实现简单,缺点是可能会导致数据不一致,因为MySQL和Redis之间的同步延迟。这种方法的优点是实现简单,缺点是可能会导致数据不一致,因为数据在同步的过程中可能会被修改。在查询接口中,先从redis获取,获取不到则查询数据库,再将数据手动存入redis。可以将MySQL和Redis同时写入,确保数据的一致性。这种方法的优点是实现简单,缺点是可能会影响性能。原创 2018-09-17 10:33:27 · 2512 阅读 · 1 评论 -
Redis应用(1)缓存(1.1)Redis四种缓存问题
缓存带来的问题,解决方案原创 2024-01-23 10:59:05 · 956 阅读 · 1 评论 -
Redis部署方式(三)哨兵模式(3)springboot集成
一、代码:二、测试:原创 2020-06-04 16:52:59 · 1848 阅读 · 1 评论 -
Redis部署方式(三)哨兵模式(2)linux搭建
上一篇写了windows环境下搭建redis集群,常用的集群还是搭建在linux服务器上。原创 2020-09-01 14:20:18 · 1303 阅读 · 1 评论 -
Redis部署方式(三)哨兵模式(1)介绍
一、Redis Cluster(Redis集群)简介redis是一个开源的key value存储系统,受到了广大互联网公司的青睐。redis3.0版本之前只支持单例模式,在3.0版本及以后才支持集群,我这里用的是redis3.0.0版本;redis集群采用P2P模式,是完全去中心化的,不存在中心节点或者代理节点;redis集群是没有统一的入口的,客户端(client)连接集群的时候连接集群中的任意节点(node)即可,集群内部的节点是相互通信的(PING-PONG机制),每个节点都是一个redis实原创 2020-06-04 16:02:57 · 2400 阅读 · 1 评论 -
Redis部署方式(二)主从模式
在前面单机版的基础上,41在主,30为从。1、41主Redis。原创 2024-03-14 14:02:44 · 502 阅读 · 0 评论 -
Redis部署方式(一)单机版安装与代码集成
下载redis压缩包,然后解压压缩文件;进入到解压缩后的redis文件目录(此时可以看到Makefile文件),编译redis源文件;把编译好的redis源文件安装到/usr/local/redis目录下,如果/local目录下没有redis目录,会自动新建redis目录;进入/usr/local/redis/bin目录,直接./redis-server启动redis(此时为前端启动redis);将redis启动方式改为后端启动,具体做法:把解压缩的redis文件下的redis.conf文件复制到/原创 2020-06-04 16:00:40 · 800 阅读 · 1 评论 -
Redis部署方式(0)四种部署方式介绍
主从模式是三种模式中最简单的,在主从复制中,数据库分为两类:主数据库(master)和从数据库(slave)。- slave挂了不影响其他slave的读和master的读和写,重新启动后会将数据从master同步过来;- master挂了以后,不影响slave的读,但redis不再提供写服务,master重启后redis将重新对外提供写服务;部署、Redis哨兵模式部署、Cluster集群模式部署,后面三种(redis的四种部署方式: Redis单机模式部署、数据丢失----大灾难。开启多Redis进程。原创 2024-02-20 16:14:35 · 3211 阅读 · 0 评论 -
redis配置文件详情
redis自带两个conf配置文件,redis.conf为redis配置文件,sentinel.conf为哨兵配置文件。一、redis.conf为redis的配置文件。注意:修改配置文件需要重启生效。原创 2024-03-14 11:31:48 · 425 阅读 · 0 评论 -
Redis降低内存占用(二)分片结构
分片,也称为分区。Redis提供了多种分区实现方案:二、原创 2024-02-21 16:41:59 · 706 阅读 · 0 评论 -
Redis降低内存占用(一)短结构
一、步骤:1、pom加上:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>2、配置文件:...原创 2018-09-04 10:02:58 · 2550 阅读 · 1 评论 -
redis数据安全(五)事务
设定事务的结束位置,同时执行事务。加入事务的命令暂时进入到任务队列中,并没有立即执行,只有执行exec命令才开始执行。若在事务队列中存在命令性错误(类似于java编译性错误),则执行EXEC命令时,所有命令都不会执行。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。2、实现方法:在一个客户端操作的时候,把所有的指令一次性按照顺序排他的放在一个队列中,执行完了之后再让其他的客户端操作。设定事务的开启位置,此指令执行后,后续的所有指令均加入到事务中。原创 2024-01-17 15:22:03 · 588 阅读 · 1 评论 -
redis数据安全(四)复制
5、原理:master启动会生成一个run id,首次同步时会发送给slave,slave同步命令会带上run id以及offset,显然,slave启动(初次,重启)内存中没有run id,所以master收到后会全量同步,发生网络抖动时,slave发生的同步命令会带上run id以及offset,master就知道去缓存中对应的偏移量开始到结尾那一段的命令发送给slave进行增量同步。增量复制的过程主要是主服务器每执行一个写命令就会向从服务器发送相同的写命令,从服务器接收并执行收到的写命令。原创 2024-01-17 15:06:13 · 551 阅读 · 0 评论 -
redis数据安全(三)数据持久化 AOF
Redis 为了提升写入效率,它不会将内容直接写入到磁盘中,而是将其放到一个内存缓存区(buffer)中,等到缓存区被填满时采用异步真正将缓存区中的内容写入到磁盘里,Linux 系统的 fsync() 函数可以将指定文件的内容从内核缓存刷到硬盘中。假设 AOF 日志记录了自 Redis 实例创建以来所有的修改性指令序列,那么就可以通过对一个空的 Redis 实例顺序执行所有的指令,也就是「重放」,来恢复 Redis 当前实例的内存数据结构的状态。命令,开始重写 aof 文件。原创 2024-01-17 11:12:09 · 1087 阅读 · 1 评论 -
redis数据安全(二)数据持久化 RDB
一、将数据持久化至硬盘原创 2024-01-16 17:05:49 · 720 阅读 · 0 评论 -
redis数据安全(一)数据持久化
(2)AOF(Append only File) :只追加文件,将 redis 执行过的所有写指令记录下来,在下次 redis 重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了。(3)可以选择关闭持久化: 如果没有数据持久化的需求,也完全可以关闭 RDB 和 AOF 方式,这样的话,redis 将变成一个纯内存数据库,就像 memcache 一样。1、介绍:Redis是一个基于内存的数据库,它的数据是存放在内存中,内存有个问题就是关闭服务或者断电会丢失。(1)可以单独使用某一种;原创 2024-01-17 13:51:53 · 815 阅读 · 0 评论 -
redis原理(五)Lua语言
在 Redis 的 2.6 以上版本中,除了可以使用命令外,还可以使用 Lua 语言操作 Redis。Redis 命令的计算能力并不算很强大,而使用 Lua 语言则在很大程度上弥补了 Redis 的这个不足。原创 2024-01-28 15:22:40 · 592 阅读 · 1 评论 -
redis原理(四)redis数据操作命令
1、自增自减 如果一个值可以被解释为十进制整数或者浮点数,redis会允许用户对这个字符串进行INCR*、DECR*操作。原创 2024-01-15 16:26:11 · 655 阅读 · 0 评论 -
布隆过滤器
Bloom 过滤器是一种概率型数据结构,用于快速判断一个元素是否属于一个集合。它以较小的空间占用和高效的查询时间著称。其具有判断为无则不存在,判断为有则不一定存在的特性。原创 2024-02-27 09:29:22 · 1161 阅读 · 0 评论 -
redis原理(三)扩展数据结构
Redis除了支持5种数据结构,还新扩展了三种数据结构。原创 2024-01-18 10:30:27 · 477 阅读 · 0 评论 -
redis原理(二)数据结构
1、介绍:redis没有直接使用C语言传统的字符串表示,而是自己实现的叫做简单动态字符串SDS的抽象类型。C语言的字符串不记录自身的长度信息,而SDS则保存了长度信息,内部结构实现上类似于 Java 的ArrayList,这样将获取字符串长度的时间由O(N)降低到了O(1),同时可以避免缓冲区溢出和减少修改字符串长度时所需的内存重分配次数;3、大小:当字符串长度小于 1M 时,扩容都是加倍现有的空间,如果超过 1M,扩容时一次只会多扩 1M 的空间。需要注意的是字符串最大长度为 512M;原创 2024-01-15 11:09:36 · 523 阅读 · 2 评论 -
redis原理(一)介绍
一、redis:redis之所以说是内存数据库,是因为redis基于内存的读取和写入相比传统的数据库基于磁盘IO快上数倍。于是乎redis在现在的应用中使用的非常广泛。二、jedis:就是集成了redis的一些命令操作,封装了redis的java客户端。一般不直接使用jedis,而是在其上在封装一层,作为业务的使用。1、提供缓存服务,存储访问频率高的热数据防止穿透到数据库。2、在分布式系统中可以作为实现分布式锁的一种实现方案。原创 2024-01-02 15:11:49 · 447 阅读 · 0 评论