![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
文章平均质量分 74
Redis
AlvinUnity
这个作者很懒,什么都没留下…
展开
-
15. 缓存穿透与雪崩
15.1 缓存穿透15.1.1 概念缓存穿透的概念很简单,用户想要查询一个数据,发现redis内存数据没有,也就是缓存没有命中,于是向数据库查询,发现也没有,于是本次查询失败,当用户很多的时候,缓存都没有命中(例如秒杀),于是都去请求数据库,这会给数据库造成很大的压力,这就相当于缓存穿透15.1.2 解决方案布隆过滤器布隆过滤器是一种数据结构,对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃,从而避免了对底层存储系统的查询压力当存储层不命中后,即使返回的空对象,也将其原创 2020-10-13 21:26:21 · 134 阅读 · 0 评论 -
14. Docker配置Redis哨兵模式
14.1 简介哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理就是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。也就是主从切换的升级版,能够后台监控主机是否故障,如果故障了则根据投票数自动将从库转换为主库这里的哨兵有两个作用:通过发送命令,让Redis服务器返回并监控其运行状态,包括主服务器和从服务器当哨兵检测到master宕机,会根据投票自动将slave切换成master,然后通过发布订阅模式通原创 2020-10-11 12:45:40 · 516 阅读 · 0 评论 -
13. Redis主从复制
13.1 简介主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower)数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave 以读为主。默认情况下,每台Redis服务器都是主节点,且一个主节点可以有多个从节点(或没有),但是一个从节点只能有一个主节点。主从复制的主要作用:数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式故障恢复:当主节点出现问原创 2020-10-10 23:02:20 · 99 阅读 · 0 评论 -
12. Redis集群环境搭建
12.1 环境配置只配置从库,不用配置主库12.1.1 查看当前库的信息127.0.0.1:6379> info replication# Replication# 角色role:master# 没有从机connected_slaves:0master_replid:af727c02bc54cbd7403a8c0d239d7497821ed504master_replid2:0000000000000000000000000000000000000000master_repl原创 2020-10-07 21:56:16 · 470 阅读 · 0 评论 -
11. Redis发布订阅
11.1 简介Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。比如:微信、微博的关注系统!Redis 客户端可以订阅任意数量的频道。第一个:消息发送者, 第二个:频道 第三个:消息订阅者!下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三原创 2020-10-06 11:57:12 · 258 阅读 · 0 评论 -
10. Redis持久化之AOF
10. AOF(Append Only File)将所有的命令都记录下来,类似histrory的操作, 恢复的时候会将这个文件全执行一遍10.1 简介以日志的形式来记录每个写操作,将Redis执行过的所有指令记录下来(读操作不记录),只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换一种说法,redis重启的话,就是根据日志文件的内容,将写指令从前到后执行了一次,才完成了数据的恢复。10.2 配置AOF首先修改配置文件中的appendonly yes进入原创 2020-10-05 21:57:55 · 1562 阅读 · 0 评论 -
9. Redis持久化之RDB
9.1 简介Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出,服务器中的数据库状态也会消失。所以 Redis 提供了持久化功能!9.2 RDB(Redis DataBase)在指定的时间间隔内将内存中的数据集快照写入磁盘,恢复时将快照文件直接读到内存里。Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,等持久化过程都结束了,再用这个临时文件替换上次持久化好的文件,整个过程中,主进程是不进行任何IO操作的,这就确保了原创 2020-10-04 20:59:04 · 122 阅读 · 0 评论 -
8. Redis.conf
8.1 docker配置redis.confdocker在一开始运行的时候是没有配置文件的,需要手动挂载。# 1. 创建配置文件目录,这里使用/usr/local/redis mkdir -p /usr/local/redis# 2. 获取redis.conf配置文件,这里我使用第二种方式# 方式一:可以直接创建空redis.conf文件,将配置复制进去# 方式二:也可以下载redis,将redis.conf文件拷到之前配置的目录下,查看是否安装wget,没安装先安装,已安装跳过 yum原创 2020-10-03 17:38:31 · 152 阅读 · 0 评论 -
7. SpringBoot整合Redis
7.1 简介jedis : 采用的直连,多个线程操作的话,是不安全的,如果想要避免不安全,使用 jedis pool 连接池! 更像 BIO 模式lettuce : 采用netty,实例可以在多个线程中进行共享,不存在线程不安全的情况!可以减少线程数据,更像 NIO 模式7.2 源码分析RedisAutoConfigurationpublic class RedisAutoConfiguration { @Bean // 可以自定义一个redisTemplate来替换这个默认的原创 2020-09-30 21:39:21 · 189 阅读 · 0 评论 -
6. Jedis
6.1 简介Jedis 是 Redis 官方推荐的 java连接开发工具! 使用Java 操作Redis 中间件!6.2 测试导入依赖<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.3.0</version></dependency><dep原创 2020-09-28 21:54:50 · 79 阅读 · 0 评论 -
5. Redis 事务
5.1 简介一组命令的集合,一个事务中的所有命令都会被序列化,在事务执行过程中,会按顺序执行!一次性、顺序性、排他性、执行一些列的命令Redis事务没有隔离级别的概念所有的命令在事务中,并没有直接执行,只有发起执行命令的时候才会执行Redis单条命令是保证原子性的,但是Redis的事务不保证原子性!5.2 测试5.2.1 执行事务# 开启事务127.0.0.1:6379> multiOK# 命令进入队列127.0.0.1:6379> set k1 v1QUEUED原创 2020-09-28 06:27:54 · 87 阅读 · 0 评论 -
4. Redis特殊数据类型
4.1 Geospatial 地理位置4.1.1 geoadd# 添加地理位置# 规则:两级无法直接添加,我们一般会下载城市数据,直接通过java程序一次性导入!# 有效的经度从-180度到180度。# 有效的纬度从-85.05112878度到85.05112878度。# 当坐标位置超出上述指定范围时,该命令将会返回一个错误127.0.0.1:6379> GEOADD china:city 121.47 31.23 shanghai(integer) 1# 同时添加两个城市127原创 2020-09-27 22:29:23 · 95 阅读 · 0 评论 -
3. Redis基础数据类型
3.1 简介Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件MQ。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU原创 2020-09-25 21:41:11 · 149 阅读 · 0 评论 -
2. Redis进门
2.1 概述2.1.1 Redis是什么Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。redis会周期性的把更新的数据写入磁盘,或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。也被称之为结构化数据库2.1.2 Redis的作用内存存储、持久化(rdb、aof)效率高,可以用于高速缓存原创 2020-09-20 21:38:14 · 254 阅读 · 0 评论 -
1. NoSQL概述
1. Nosql概述1.1 为什么要用Nosql1.1.1 单机MySQL90年代,一个基本的网站访问量一般不会太大,单个数据库完全足够!那个时候,更多的是去使用静态网页 Html, 服务器根本没有太大的压力!这种情况下网站会产生一些瓶颈:数据量如果太大、一个机器放不下了!数据的索引 (B+ Tree),一个机器内存也放不下访问量(读写混合),一个服务器承受不了~只要你开始出现以上的三种情况之一,那就意味着网站需要升级了1.1.2 Memcached(缓存) + MySQL + 垂原创 2020-09-18 15:22:32 · 180 阅读 · 0 评论