之前我们提到,为了保证Redis的高可用,主要需要以下几个方面:数据持久化主从复制自动故障恢复集群化我们简单理一下这几个方案的特点,以及它们之间的联系。数据持久化本质上是为了做数据备份,有了数据持久化,当Redis宕机时,我们可以把数据从磁盘上恢复回来,但在数据恢复之前,服务是不可用的,而且数据恢复的时间取决于实例的大小,数据量越大,恢复起来越慢。而主从复制 ......
349
0
0
2022-12-11
Redis占用内存大小我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小。1、通过配置文件配置通过在Redis安装目录下面的redis.conf配置文件中添加以下配置设置内存大小//设置Redis最大占用内存大小为100M maxmemory 100mb ......
327
0
0
2022-12-11
导读:在实际项目中Redis常被应用于做缓存,分布式锁、消息队列等。但是在搭建配置好Redis服务器后很多朋友应该会发现和有这样的疑问,为什么Redis默认建立了16个数据库,如下图所示。一、16个数据库的由来Redis是一个字典结构的存储服务器,一个Redis实例提供了多个用来存储数据的字典,客户端可以指定将数据存储在哪个字典中。这与在一个关系数据库实例中 ......
324
0
0
2022-12-11
大家好,我是陌溪前言Redis 是一个高性能的分布式内存数据库,在国内的公司也有着非常广泛的使用场景。因此,在面试过程中,关于 Redis 相关的知识点,也是经常被问到的。下面这题,就是之前面试的时候遇到过的,让我们一起来学习一下吧~Redis 有那些数据结构?以及它们的使用场景?Redis五种数据结构Redis 为我们提供了 5 种数据结构,分别是以下几种 ......
339
0
0
2022-12-09
前言一个服务器节点可以部署多个redis实例,每个实例都有独立的配置文件例如:如下配置include /opt/redis/data/tstest-9-99/redis_commom.conf port 29999 dir /opt/redis/data/ bind 30.1.3.29 dbfilename tstest-9-99.rdb pidf ......
338
0
0
2022-12-08
Reactor 模式它要解决什么问题呢?传统的 thread per connection 用法中,线程在真正处理请求之前首先需要从 socket 中读取网络请求,而在读取完成之前,线程本身被阻塞,不能做任何事,这就导致线程资源被占用,而线程资源本身是很珍贵的,尤其是在处理高并发请求时。而 Reactor 模式指出,在等待 IO 时,线程可以先退出,这样就不 ......
398
0
0
2022-12-08
文件入口:server.c##main配置初始化这一步表示Redis服务器基本数据结构和各种参数的初始化。在Redis源码中,Redis服务器是用一个叫做redisServer的struct来表达的,里面定义了Redis服务器赖以运行的各种参数,比如监听的端口号和文件描述符、当前连接的各个client端、Redis命令表(command table)配置、持 ......
410
0
0
2022-12-08
Redis-HyperLogLog基于HyperLogLog算法,使用极小的空间完成巨量运算Redis 中HyperLogLog 基本使用常用命令PFADD key element [element …]: 将任意数量的元素添加到指定的 HyperLogLog 里面。PFCOUNT key [key …]: 计算hyperloglog的独立总数prmerge ......
325
0
0
2022-11-27
Redis主从复制为了避免单点Redis服务器故障,准备多台服务器,互相连通,将数据复制多个副本保存在不同的服务器上,连接在一起,并保证数据是同步的,即使有其中一台服务器宕机,其他服务器依然可以继续提供服务,实现Redis的高可用,同时实现数据冗余备份。互联网“三高”架构高并发高性能高可用:可用性目标99.999%,即每年服务器宕机时长低于315秒单机Red ......
343
0
0
2022-11-25
Redis事务redis事务就是一个命令执行的队列,将一系列预定义的命令包装成一个整体,在执行时,就按这个顺序依次执行,中间不会被打断或干扰事务的基本操作开启事务multi 作用: 设定事务的开启位置,从这句命令之后,后续所有的指令都会被加入事务队列,并不会立刻执行。执行事务exec 作用: 设定事务的结束位置,同时执行事务,返回事务队列里每条指令的执行 ......
399
0
0
2022-11-25
GEOGEO即地址信息定位,可以用来存储经纬度,计算两地距离,范围计算等。这意味着我们可以使⽤ Redis 来实现美团和饿了么「附近的餐馆」,微信摇一摇等功能了。常用APIGEOADD key logitude latitude member[ logitude1 latitude1 member1...]: 增加地理位置信息127.0.0.1:8100&g ......
320
0
0
2022-11-25
Redis-BitmapBitMap,即位图,是一个byte数组,用二进制表示,只能存储0和1,BitMap并不是一个特殊的数据结构,它实质上还是普通的字符串。1. 操作API由于BitMap本质上还是String, 所以我们可以使用get/set直接获取整个位图的内容,也可以使用提供的专门的getbit/setbit来按位处理命令含义getbit key ......
303
0
0
2022-11-25
Redis 发布订阅Redis 发布订阅可以用在像消息通知,群聊,定向推送,参数刷新加载等业务场景发布订阅模型有三个角色:发布者(Publisher)订阅者(Subscriber)频道(channel)每个订阅者可以订阅多个频道,发布者可以在某个频道里发布消息,订阅者会接受到自己订阅频道里发布的消息。相关命令(参考)publish channel messa ......
397
0
0
2022-11-25
删除策略那些有效期到了的数据,Redis并不是真的一到期立刻就把它删了,因为删除数据相比于其他客户端命令并不那么重要,这些数据会暂留在内存中,最终根据Redis的删除策略删除好的删除策略应该是尽量寻找内存占用和CPU占用之间的平衡点,而不是单纯确保过期数据被删除,顾此失彼会造成Redis整体性能的下降,引起服务器宕机或内存泄露。Redis 有三种删除策略:定 ......
332
0
0
2022-11-25
Redis-Pipeline正常的Redis 命令的生命周期是 Client 给 Server 发一条命令,Server 执行后把结果反馈给 Client,但这个过程中, Client 和 Server 之间的通信会花费大量时间,pipeline 的思路就是每一次 Client 和 Server 通信不再是一次发一条命令(/结果)而是把一批命令打包传输给 S ......
427
0
0
2022-11-25