大家好,我是小林。我们都知道 Redis 提供了丰富的数据类型,常见的有五种:String(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合)。随着 Redis 版本的更新,后面又支持了四种数据类型:BitMap(2.2 版新增)、HyperLogLog(2.8 版新增)、GEO(3.2 版新增)、Stream(5.0 版新增 ......
380
0
0
2022-12-12
作者:小林coding八股文网站:xiaolincoding.com哈喽,我是小林。今天跟大家聊聊两个问题:如何用 Redis 实现分布式锁?Redis 是如何解决集群情况下分布式锁的可靠性问题的?如何用 Redis 实现分布式锁的?分布式锁是用于分布式环境下并发控制的一种机制,用于控制某个资源在同一时刻只能被一个应用所使用。如下图所示:Redis 本身可以 ......
391
0
0
2022-12-12
什么是redis?Redis 本质上是一个 Key-Value 类型的内存数据库, 整个数据库加载在内存当中进行操作, 定期通过异步操作把数据库数据 flush 到硬盘上进行保存。因为是纯内存操作, Redis 的性能非常出色, 每秒可以处理超过 10 万次读写操作, 是已知性能最快的 Key-Value DB。Redis 的出色之处不仅仅是性能, Redi ......
346
0
0
2022-12-11
Redis 简介Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key - value 数据库Redis 与 其他 key - value 缓存产品有以下三个特点:Redis 支持数据持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis 不仅仅支持简单的 key - value 类型的数据,同时还提供 list ......
373
0
0
2022-12-11
之前我们提到,为了保证Redis的高可用,主要需要以下几个方面:数据持久化主从复制自动故障恢复集群化我们简单理一下这几个方案的特点,以及它们之间的联系。数据持久化本质上是为了做数据备份,有了数据持久化,当Redis宕机时,我们可以把数据从磁盘上恢复回来,但在数据恢复之前,服务是不可用的,而且数据恢复的时间取决于实例的大小,数据量越大,恢复起来越慢。而主从复制 ......
380
0
0
2022-12-11
Redis占用内存大小我们知道Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小。1、通过配置文件配置通过在Redis安装目录下面的redis.conf配置文件中添加以下配置设置内存大小//设置Redis最大占用内存大小为100M maxmemory 100mb ......
371
0
0
2022-12-11
导读:在实际项目中Redis常被应用于做缓存,分布式锁、消息队列等。但是在搭建配置好Redis服务器后很多朋友应该会发现和有这样的疑问,为什么Redis默认建立了16个数据库,如下图所示。一、16个数据库的由来Redis是一个字典结构的存储服务器,一个Redis实例提供了多个用来存储数据的字典,客户端可以指定将数据存储在哪个字典中。这与在一个关系数据库实例中 ......
372
0
0
2022-12-11
大家好,我是陌溪前言Redis 是一个高性能的分布式内存数据库,在国内的公司也有着非常广泛的使用场景。因此,在面试过程中,关于 Redis 相关的知识点,也是经常被问到的。下面这题,就是之前面试的时候遇到过的,让我们一起来学习一下吧~Redis 有那些数据结构?以及它们的使用场景?Redis五种数据结构Redis 为我们提供了 5 种数据结构,分别是以下几种 ......
370
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 ......
383
0
0
2022-12-08
Reactor 模式它要解决什么问题呢?传统的 thread per connection 用法中,线程在真正处理请求之前首先需要从 socket 中读取网络请求,而在读取完成之前,线程本身被阻塞,不能做任何事,这就导致线程资源被占用,而线程资源本身是很珍贵的,尤其是在处理高并发请求时。而 Reactor 模式指出,在等待 IO 时,线程可以先退出,这样就不 ......
459
0
0
2022-12-08
文件入口:server.c##main配置初始化这一步表示Redis服务器基本数据结构和各种参数的初始化。在Redis源码中,Redis服务器是用一个叫做redisServer的struct来表达的,里面定义了Redis服务器赖以运行的各种参数,比如监听的端口号和文件描述符、当前连接的各个client端、Redis命令表(command table)配置、持 ......
469
0
0
2022-12-08
Redis-HyperLogLog基于HyperLogLog算法,使用极小的空间完成巨量运算Redis 中HyperLogLog 基本使用常用命令PFADD key element [element …]: 将任意数量的元素添加到指定的 HyperLogLog 里面。PFCOUNT key [key …]: 计算hyperloglog的独立总数prmerge ......
357
0
0
2022-11-27
Redis主从复制为了避免单点Redis服务器故障,准备多台服务器,互相连通,将数据复制多个副本保存在不同的服务器上,连接在一起,并保证数据是同步的,即使有其中一台服务器宕机,其他服务器依然可以继续提供服务,实现Redis的高可用,同时实现数据冗余备份。互联网“三高”架构高并发高性能高可用:可用性目标99.999%,即每年服务器宕机时长低于315秒单机Red ......
375
0
0
2022-11-25
Redis事务redis事务就是一个命令执行的队列,将一系列预定义的命令包装成一个整体,在执行时,就按这个顺序依次执行,中间不会被打断或干扰事务的基本操作开启事务multi 作用: 设定事务的开启位置,从这句命令之后,后续所有的指令都会被加入事务队列,并不会立刻执行。执行事务exec 作用: 设定事务的结束位置,同时执行事务,返回事务队列里每条指令的执行 ......
453
0
0
2022-11-25
GEOGEO即地址信息定位,可以用来存储经纬度,计算两地距离,范围计算等。这意味着我们可以使⽤ Redis 来实现美团和饿了么「附近的餐馆」,微信摇一摇等功能了。常用APIGEOADD key logitude latitude member[ logitude1 latitude1 member1...]: 增加地理位置信息127.0.0.1:8100&g ......
361
0
0
2022-11-25