Redis 系列笔记+理论
文章平均质量分 52
以实战为主,将Redis 的系列笔记写出来,方便更多的人
思诚代码块
这个作者很懒,什么都没留下…
展开
-
Redis缓存穿透与雪崩
大家好,今天分享Redis缓存穿透与雪崩缓存穿透的概念:如果用户想要查询一个数据,发现redis内存数据库没有,即:缓存没有命中,之后向持久层数据库查询。发现也没有,于是本次查询失败。当用户很多的时候,缓存都没有命中,于是都去请求了持久层数据库。这会给持久层数据库造成很大的压力,这时候就相出现了缓存穿透。即黑客请求缓存中不存在的数据,导致所有的请求都怼到数据库上,从而数据库连接异常。注意:和缓存击穿的区别,缓存击穿,是指一个key非常热点,在不停的扛着大并发,高并发集中对这一个点进行访问,当这个ke原创 2022-03-24 17:49:54 · 1053 阅读 · 0 评论 -
Redis数据库的哨兵模式(很重要)
大家好,今天我们分享Redis数据库的哨兵模式在前面我们做的东西,就是有三个服务组成的Redis小集群这种方式可以处理master 出现故障的问题但是它的缺点,就是需要手工配置,这样就会出现时间上的延迟,而在生产环境当中,这种延迟是致命的,所以不推荐这种方式哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。看这个图,简单说,就是哨兵负责盯着这些服务器原创 2022-03-23 22:38:05 · 2156 阅读 · 0 评论 -
Redis集群master节点挂掉之后的处理方式
大家好,今天分享Redis集群master节点挂掉之后的处理方式我们前面做的主从复制是这样的一个结构要改成这样将6303的主节点接到6302127.0.0.1:6303> SLAVEOF 127.0.0.1 6302OK127.0.0.1:6303> 在6303上看,它的主节点变成了6302127.0.0.1:6303> INFO replication# Replicationrole:slavemaster_host:127.0.0.1master_p原创 2022-03-23 21:00:18 · 6404 阅读 · 2 评论 -
Redis数据库的主从复制
大家好,我们来分享Redis数据库的主从复制在前面我们已经将基本的环境搭建完成了但是Redis的默认都是master (就是老大的意思)这样是不行的所以我们要配置主从这是我们刚刚启动的Redis服务连接第一个[root@localhost redistest]# redis-cli -p 6379127.0.0.1:6379> pingPONG127.0.0.1:6379> 这个表示他就是主(master)127.0.0.1:6379> INFO replica原创 2022-03-23 20:00:03 · 723 阅读 · 0 评论 -
Redis集群的搭建
大家好,今天分一下Redis集群的搭建首先要知道什么是集群:简单来说,集群就是很多服务器做一件事,这样的部署的方式,就是集群通常在集群当中,有很多个节点(服务器),在里边至少有一个主节点这个主节点,就是当中的老大在这里,我们大家一下Redis数据库的集群进入redis数据库的安装目录 [root@localhost ~]# cd /usr/local/bin/启动Redis[root@localhost bin]# redis-server redistest/redis.conf原创 2022-03-23 18:32:12 · 671 阅读 · 0 评论 -
Redis数据库的订阅发布
大家好,今天分享一下redis的订阅发布Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道。(比如说,你在一个一个网站上面可以关注很多个用户,就是这样的)这是它的流程图:第一个: 是我们消息的发布者第一个: 是我们消息的接收者第三个: 就是我们的频道看下图:下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 cl原创 2022-03-23 14:52:14 · 2267 阅读 · 1 评论 -
Redis 数据库AOF持久化的操作
大家好,今天分享一下Redis 数据库aof持久化的操作AOF(Append Only File ):将我们的命令都记录下来,恢复的时候就把这个文件再执行一遍aof 保存的是appendonly.aof 文件[root@localhost redistest]# vim redis.conf 它的配置文件在这里注意这个(默认是关闭)这里也要注意一下把这个改成yes就可以使用aof了这个时候可以看见有appendonly.aof这个文件重启数据库127.0.0.1:637原创 2022-03-23 13:56:52 · 517 阅读 · 0 评论 -
Redis数据库的rdb的持久化操作
大家好,今天分享一下Redis数据库的rdb的持久化操作Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消逝,所以Redis提供了持久化功能!在主从复制中,rdb就是备用的,存在从机上边,不占用主机资源。在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是Snapshot快照,它恢复时是将快照文件直接读取到内存里。Redis会单独创建fork一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化都结束了,再用这个临时文件替换上原创 2022-03-23 12:04:42 · 793 阅读 · 0 评论 -
Redis数据库的配置文件
大家好,今天分享Redis数据库的配置文件在Linux的环境的redis配置文件是redis.conf这个文件首先要知道redis数据库的启动,就要依靠redis.conf这个文件[root@192 bin]# cd redistest/[root@192 redistest]# ll总用量 64-rw-r--r--. 1 root root 61798 3月 16 13:52 redis.conf[root@192 redistest]# vim redis.conf Redis数据库原创 2022-03-22 18:12:24 · 1001 阅读 · 0 评论 -
Redis基本事务的操作
大家好,今天分享一下Redis基本事务的操作redis的单个命令是保证原子性,(就是要么一起成功,要么一起失败的)redis 事务的本质是一组命令的集合,事务支持一次可以执行多个命令,一个事务当中的所有命令被序列化在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。总结说:redis事务就是一次性、顺序性、排他性的执行一个队列中的一系列命令。关于 redis数据库的事务和MySQL那样的关系型数据库的区别在于1.Redis事务没有隔离级别的概原创 2022-03-21 16:39:11 · 303 阅读 · 0 评论 -
redis bitmap的使用
大家好,今天分享redis bitmap的使用BitMap 原本的含义是用一个比特位来映射某个元素的状态。由于一个比特位只能表示 0 和 1 两种状态,所以 BitMap 能映射的状态有限,但是使用比特位的优势是能大量的节省内存空间。 它是redis数据库当中一个特殊的数据结构写一个实例讲解一下比如说,一个星期有7天,员工打卡,打卡记为1 ,没有打卡则记为027.0.0.1:6379> SETBIT sign 0 1 //周一(integer) 0127.0.0.1:6原创 2022-03-21 15:38:30 · 582 阅读 · 0 评论 -
Redis hyperloglog基数统计
大家好,今天分享Redis hyperloglog基数统计它的好处 在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。看这个数据集 {1, 3, 5, 7, 5, 7, 8},那么它的基数集合就是 {1, 3, 5 ,7, 8},所谓的基数(就是不重复的元素=5)hyperloglog基数统计是在Redis-2.8.9就有了这种数据结构实例,一个人访问网站多重就算它一个人由传统的方式:set 保存用户信息,就可以统计set 中的数据作为标准判断,原创 2022-03-21 15:09:11 · 784 阅读 · 0 评论 -
Redis zset(有序集合)的解释
大家好,今天我们分享Redis zset(有序集合)的解释其实,zset 的全称为sorted setredis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。简单来讲,就是在set 的基础之上,添加一个值我们首先设一个值127.0.0.1:6379> ZADD kele 1 one(i原创 2022-03-20 12:25:21 · 810 阅读 · 0 评论 -
redis hash 哈希类型的解释
大家好,今天来分享一下redis hash 哈希类型的解释Redis hash 是一个 string 类型的 field(字段) 和 value(值) 的映射表,hash 特别适合用于存储对象。Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)。hash(哈希)这个直接把它理解成map 集合就可以了之前我们说的set 集合是键值对的形式哈希这一块,理解成key-map集合的形式在redis当中 ,所有的哈希的命令是以h开头的这个其实跟我们之前那个也没有什么区别原创 2022-03-20 10:57:02 · 565 阅读 · 0 评论 -
Redis set集合的解释,一看就会
大家好,今天分享redis set 集合set(集合)这是关于它一些解释Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。集合对象的编码可以是 intset 或者 hashtable。Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。集合中最大的成员数为232 - 1 (4294967295, 每个集合可存储40多亿个成员)。实操开始:删除所有数据库信息127.0.0.1:6379&g原创 2022-03-19 18:49:28 · 1108 阅读 · 0 评论 -
Redis list列表类型的解释,(实操)
大家好,今天我们分享一下Redis list列表类型的解释redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。清空Redis数据库所有信息127.0.0.1:6379> FLUSHALLOK现在数据库里没有东西127.0.0.1:6379> keys *(empty list or set)127.0.0.1:6379&g原创 2022-03-19 14:20:28 · 298 阅读 · 0 评论 -
string字符串类型的解释,一看就会
大家好,今天分享一下Redis string字符串类型的解释我们说过,Redis可以支持多种数据类型string就是字符串创建键值对127.0.0.1:6379> set menren shaigeOK127.0.0.1:6379> 获取值127.0.0.1:6379> get menren"shaige"显示所有键127.0.0.1:6379> keys *1) "menren"判断指定的键是否存在(1 表示存在)127.0.0.1:637原创 2022-03-18 12:23:15 · 1104 阅读 · 0 评论 -
Rediskey的基本操作
大家好,今天分享一下Rediskey的基本操作看一段Redis官网的解释:(注意红色部分)Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。前面说了,Redis可以支持多种数据类型今天分享一下Redis-key原创 2022-03-17 14:28:16 · 2117 阅读 · 0 评论 -
Redis数据库的基本认识,你要知道
大家好,今天我们来分享一下Redis数据库的基本认识首先要知道,Redis默认有16个数据库查看文件信息[root@localhost bin]# cd redistest/[root@localhost redistest]# ll总用量 64-rw-r--r--. 1 root root 61798 3月 16 13:52 redis.conf[root@localhost redistest]# vim redis.conf 看第186行或者使用这个命令也可以的默认使用第0原创 2022-03-17 13:28:24 · 652 阅读 · 0 评论 -
redis-benchmark对redis进行性能测试
大家好,今天我们来分享一下使用redis-benchmark对redis进行性能测试进入redis 的默认安装目录:[root@localhost ~]# cd /usr/local/bin/指的就是这个压力测试工具,这是官方自带的它的命令格式:redis-benchmark [option] [option value]redis 性能测试工具可选参数如下所示:序号 选项 描述 默认值1 - h 指定服务器主机名 127.0.0.12 -p 指定服务器端口 63原创 2022-03-16 17:58:48 · 1706 阅读 · 3 评论 -
Redis在Linux上的安装,很简单
大家好,今天分享一下Redis在Linux上的安装首先要获取软件包(linux)可以在官网下载使用镜像站的方式(因为官网下载很慢)这是Redis 包的国内镜像站,点一下就可以了点开始这样的下载这个redis-5.0.8.tar.gz解压包[root@localhost opt]# tar zvxf redis-5.0.8.tar.gz -C /opt/[root@localhost ~]# ls -l /opt/redis-5.0.8/ //显示redis原创 2022-03-16 14:04:26 · 2170 阅读 · 0 评论 -
Redis在Windows系统下的安装
大家好,今天我们分享一下Redis在Windows系统下的安装点开它就可以了,这是我使用的版本下载这个正在下载就是这个解压成功这就是解压之后的目录点击这个Redis启动成功Redis的端口: 6379点击这个这是我们在Windows环境下操作redis的命令窗口ping : 为了测试是否正常set name shuaige : 创建一个兼职对get name : 获得name 的 赋原创 2022-03-16 12:52:21 · 620 阅读 · 0 评论 -
Redis的概述,简单说一下
大家好,今天分享一下Redis的简单概述1.Redis(Remote Dictionary Server ),即远程字典服务2. Redis是开源的,免费的3. Redis是使用c语言编写的4. Redis是支持网络的,(就是说可以通过网络协议进行数据的传输)5. 基于内存亦可持久化的日志型Key-Value数据库6. 提供多种语言的API (就是很多种编程语言都可以对Redis进行数据调用)7. Redis可以理解为一个结构化数据库Redis的好处:可以有效的处理高并发它存储原创 2022-03-16 12:03:09 · 1031 阅读 · 0 评论