Redis
文章平均质量分 65
redis非关系型内存数据库
有趣的灵魂_不世俗的心
这个作者很懒,什么都没留下…
展开
-
布隆过滤器
布隆过滤器的定义:布隆过滤器(Bloom Filter)是由布隆(Burton Howard Bloom)在 1970 年提出的,bloom过滤器由长度为m的位向量或位列表(仅包含0或1位值的列表)组成,最初所有值都设置为0。用于检查值“可能存在集合中”或绝对不存在集合中。存在一定误判率。相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,但是缺点是其返回的结果是概率性的,而不是确切的。布隆过滤器的原理解析如果想判断一个元素是不是在一个集合里,一般想到的是将集合中所有元素保存原创 2022-02-17 22:36:18 · 266 阅读 · 0 评论 -
Redis数据迁移(三)
redis-dump方式安装环境依赖:安装RVM查看是否安装ruby ,或者当前安装的版本ruby -v安装ruby 环境//配置DNS解析vi /etc/hosts199.232.28.133 raw.githubusercontent.com//安装秘钥gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 94558F59//一下命令需要多次执行,才能成功,可能由于网络问题,具体原因赞不清楚curl -L get.r原创 2022-02-16 11:44:32 · 433 阅读 · 0 评论 -
Redis数据迁移(二)
方式一:使用redis-cli迁移数据迁移代码(将)192.168.31.216服务器上redis的0数据库的所有数据迁移到执行命令的服务器上redis的0数据库:新建文件vim redis-mv.sh 并添加下面内容redis-cli -h 192.168.31.216 -p 6379 -n 0 keys "*" | while read keydo redis-cli -h 192.168.31.216 -p 6379 -n 0 --raw dump $key | perl -p原创 2022-02-14 22:29:09 · 826 阅读 · 0 评论 -
redis安装报错
报错1 默认分配器报错报错截图报错代码zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录分配器allocator, 如果有MALLOC 这个环境变量, 会有用这个环境变量的 去建立Redis。而且libc 并不是默认的 分配器, 默认的是 jemalloc, 因为 jemalloc 被证明 有更少的 fragmentation problems 比libc。但是如果你又没有jemalloc 而只有 libc 当然 make 出错。 所以加原创 2022-02-12 20:38:43 · 1088 阅读 · 0 评论 -
Redi集群增加删除节点
文章目录增加主节点1、新建节点文件夹,并复制实例信息2、删除以前节点的数据信息,不然会导致后面节点添加失败3、修改配置文件4、启动两个redis 实例5、增加主节点redis原有集群图我们现在需要在以上集群的基础上在增加两个节点服务器 10.0.8.149 端口 9007服务器 10.0.8.149 端口 9008并且打算9007作为主节点 9008作为从节点。增加主节点1、新建节点文件夹,并复制实例信息cd /usr/software/redis-cluster//新建两个节点的文件夹原创 2022-02-11 11:46:24 · 421 阅读 · 0 评论 -
Node 10.0.8.149:9008 is not empty. Either the node already knows other nodes
首先来看错误截图信息我可以思考为什么会产生这个错误啦,其实导致这个错误的原因在与我们在开启新的redis实例时,是直接将其他实例的文件完全复制过来的,这就导致redis的部分持久化相关文件还是之前实例的信息,所以产生的以上错误,那么解决起来就很简单的找到一下文件appendonly.aofdumm.rdbnode*.conf(该文件名是根据你自己命名决定的)删除之前节点的历史文件rm -rf appendonly.aof dumm.rdb node*.conf然后查看对应的进程,kil原创 2022-02-11 10:41:35 · 391 阅读 · 0 评论 -
redis集群值插槽算法灵魂拷问
文章目录为什么要有这个插槽算法为什么插槽只有16384,而不是更多插槽算法的是如何实现的,怎么去验证他啦在redis集群的时候使用的是总共有插槽数16384,会根据key值分配不同的插槽,由此我们产生了一下疑问1、插槽是什么,为什么要有这个插槽算法2、为什么插槽只有16384,而不是更多3、插槽算法的是如何实现的,怎么去验证他啦为什么要有这个插槽算法虚拟槽分区是 redis cluster 中默认的数据分布技术,虚拟槽分区巧妙地使用了哈希空间,使用分散度良好的哈希函数把所有数据映射到一个固定范围原创 2022-02-10 17:37:34 · 1119 阅读 · 1 评论 -
SpringBoot整合redis集群(多主节点多从节点)
1、引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <version>2.5.9</version> </dependency>原创 2022-02-10 16:52:32 · 2206 阅读 · 0 评论 -
redis高可用实战(主从、哨兵、集群)
文章目录redis主从(1)在所有机器上安装redis验证主从服务redis主从下载redis安装文件地址:redis5.0.14下载地址(1)在所有机器上安装redis//1、上传离线包至指定路径cd /usr/software/rz //2、解压文件tar -zxvf redis-5.0.14.tar.gz //3、安装redis编译环境gccyum install -y gcc//4、 安装redismake && make install//5、将原创 2022-02-07 16:03:34 · 569 阅读 · 0 评论 -
redis实现读写分离和哨兵机制
如果想要在本地模拟的话,需要克隆三台安装好Redis的虚拟机。首先我们需要找到redis.conf,sentinel.conf两个文件,他们分别是redis的主要配置文件,和哨兵机制的配置文件一般都在redis安装包解压后的文件夹目录下:接下来我们开始进入读写分离:所谓的读写分离,其实是说主服务器实现读写操作权限,从服务器实现读操作。执行流程如下:1、当从Redis启动时,会给主Redis发送一个同步数据请求(sync命令)2、当主redis接收到sync命令后,会将数据快照起来原创 2020-05-13 22:44:37 · 1489 阅读 · 0 评论 -
windos下修改redis密码并重启
正文1,打开redis.config文件(我的文件名是:redis.windows.conf)2,搜索:requirepass foobared3,设置密码,我的设置为了2019,新增一行代码:requirepass 2019,如图所示:4,关闭redis,键入win+R打开运行对话框,在CMD使用命令:net stop redis,成功后如下图:5,重启redis,在CMD使用命令:net start redis,成功后如下图:转载:https://blog.csdn.net/转载 2021-05-06 10:02:49 · 367 阅读 · 0 评论 -
Redis中String数据结构实战应用场景简介
String数据结构的应用场景解析字符串常用操作:SET key value //存入字符串键值对MSET key value [key value ............] //批量存储字符串键值对SETNX key value ...原创 2019-11-26 17:26:50 · 190 阅读 · 0 评论 -
Redis基础知识(一)
redis为什么运行速度快:1、redis是运行在内存当中2、redis数据结构简单3、采用了多路复用IO阻塞机制4、单线程,不用处理上下文的切换。redis五中数据类型String 整数,浮点数或者字符串Set 集合Zset 有序集合Hash 散列表List 列表简述Redis的数据淘汰机制volatile-lru :从已设置过期时间的数据集中挑选最近最少使用的数据淘汰volatile-ttl : 从已设置过期时间的数据集中挑选将要过期的数据淘汰volatile-r原创 2020-10-21 17:56:35 · 71 阅读 · 0 评论 -
redis导出指定数据库指定key值
#redis导出指定的key值,-n 后面为指定数据库./redis-cli -a 123456 -p 6379 -n 3 lrange /n9e/sender/mail 0 -1 > out.txt原创 2021-03-23 17:19:16 · 2644 阅读 · 0 评论 -
Redis中List数据结构实战应用场景简介
LPUSH key value [value........] //将一个或者多个value插入到key列表的表头(最左边)RPUSH key value [value........] //将一个或者多个value插入到key列表的表尾(最右边)LPOP key ...原创 2019-11-26 18:47:43 · 487 阅读 · 0 评论 -
使用Redis分布式锁处理并发,解决超卖问题
一、使用Apache ab模拟并发压测1、压测工具介绍$ ab -n 100 -c 100 http://www.baidu.com/-n表示发出100个请求,-c模拟100个并发,相当是100个人同时访问。还可以这样写:$ ab -t 60 -c 100 http://www.baidu.com/-t表示60秒,-c是100个并发,会在连续60秒内不停的发出请求。使用...转载 2019-08-28 16:59:30 · 288 阅读 · 0 评论 -
Redist过期策略、应用、持久化
Redis的过期淘汰策略Redis的过期策略我们在set key的时候,可以给它设置一个过期时间,比如expire key 60。指定这key60s后过期,60s后,redis是如何处理的嘛?我们先来介绍几种过期策略:定时过期每个设置过期时间的key都需要创建一个定时器,到过期时间就会立即对key进行清除。该策略可以立即清除过期的数据,对内存很友好;但是会占用大量的CPU资源去处理过期的数据,从而影响缓存的响应时间和吞吐量。惰性过期只有当访问一个key时,才会判断该key是否已过期,过期则清除转载 2021-11-09 07:58:00 · 1150 阅读 · 0 评论 -
Redis中Hash数据结构实战应用场景简介
Hash常用的操作HSET key field value //存储一个哈希表key的键值HSETNX key field value //存储一个不存在的哈希表key的键值HMSET key field value [key filed value] //在一个哈希表中存储多个键值对HGET key field ...原创 2019-11-26 17:50:34 · 637 阅读 · 0 评论 -
Redis基础和缓存穿透、击穿、雪崩
什么是redis?Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Redis的数据是存在内存中的。它的读写速度非常快,每秒可以处理超过10万次读写操作。因此redis被广泛应用于缓存,另外,Redis也经常用来做分布式锁。除此之外,Redis支持事务、持久化、LUA 脚本、LRU 驱动事件、多种集群方案。Redis的数据结构(1)St转载 2021-11-04 18:15:37 · 194 阅读 · 0 评论 -
redis实现高可用
如何实现redis的高可用我们在项目中使用Redis,肯定不会是单点部署Redis服务的。因为,单点部署一旦宕机,就不可用了。为了实现高可用,通常的做法是,将数据库复制多个副本以部署在不同的服务器上,其中一台挂了也可以继续提供服务。Redis 实现高可用有三种部署模式:主从模式,哨兵模式,集群模式。主从模式主从模式中,Redis部署了多台机器,有主节点,负责读写操作,有从节点,只负责读操作。从节点的数据来自主节点,实现原理就是主从复制机制主从复制包括全量复制,增量复制两种。一般当slave第一次启动转载 2021-11-09 21:29:18 · 216 阅读 · 0 评论 -
利用redis生成自增编号
/** * redis key的层级不能超过3层() * 根据前缀+日期+每天的自增编号例如(WF2021041411200001) * * @param prefix * @param key * @param length * @return */ public String getDayIncrCode(String prefix, String key, int length) { Stri...原创 2021-05-28 17:44:05 · 6481 阅读 · 2 评论 -
Springboot+mysql+mybatis+druid+redis实现数据库缓存实战
首先我们需要引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> ...原创 2019-07-02 19:06:07 · 1272 阅读 · 0 评论 -
Redis分布式锁实现方式及原理
使用过Redis分布式锁嘛?有哪些注意点呢?分布式锁,是控制分布式系统不同进程共同访问共享资源的一种锁的实现。秒杀下单、抢红包等等业务场景,都需要用到分布式锁,我们项目中经常使用Redis作为分布式锁。选了Redis分布式锁的几种实现方法,大家来讨论下,看有没有啥问题哈。命令setnx + expire分开写setnx + value值是过期时间set的扩展命令(set ex px nx)set ex px nx + 校验唯一随机值,再删除(1) 命令setnx + expire分开写if(转载 2021-11-10 21:10:46 · 356 阅读 · 1 评论 -
Redis基础知识(二)
MySQL与Redis 如何保证双写一致性缓存延时双删删除缓存重试机制读取biglog异步删除缓存缓存延时双删1、先删除缓存2、再更新数据库3、休眠一会(比如1秒),再次删除缓存。这个休眠一会,一般多久呢?都是1秒?这个休眠时间 = 读业务逻辑数据的耗时 + 几百毫秒。为了确保读请求结束,写请求可以删除读请求可能带来的缓存脏数据。这种方案还算可以,只有休眠那一会(比如就那1秒),可能有脏数据,一般业务也会接受的。但是如果第二次删除缓存失败呢?缓存和数据库的数据还是可能不一致,对吧?给转载 2021-11-10 21:30:51 · 268 阅读 · 1 评论