摘要: 一、缓存穿透 1、概念 缓存穿透的概念很简单,用户想要查询一个数据,发现redis内存数据库没有,也就是缓存没有命中,于是向持久层数据库查询。发现也没有,于是本次查询失败。当用户很多的时候,缓存都没有命中,于是都去请求了持久层数据库。这会给持久层数据库造成很大的压力,这时候就相当于出现了缓存穿透。 阅读全文
posted @ 2022-05-25 21:52 努力的达子 阅读(34) 评论(0) 推荐(0)
摘要: 哨兵模式前奏: 有两种主从模式: 1. 2.层层链路(必须手动执行) 哨兵模式(主节点宕机后,自动推选出主节点) 哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个单独的进程,作为进程,他会独立运行。其原理是 哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis 阅读全文
posted @ 2022-05-25 21:49 努力的达子 阅读(790) 评论(0) 推荐(0)
摘要: 概念: 主从复制,是指将一台Reedis服务器的数据,复制到其他的redis服务器。前者成为主节点(master/leader),后者成为从节点(slave/follower); 数据的复制是单向的(),只能从主节点到从和节点。 Master以写为主,slave以读为主 默认情况下:每天reids服 阅读全文
posted @ 2022-05-25 21:46 努力的达子 阅读(105) 评论(0) 推荐(0)
摘要: AOF(append only file) 原理:是将我们执行的命令全部记录下来,恢复数据的时候,只需重新执行一遍即可 以日志的形式记录每一个写操作,将redis执行过的所有命令都记录下来(读操作不记录),只需追加文件但不可以更写文件 redis启动之初会读取文件重新构建数据,换言之,redis重启 阅读全文
posted @ 2022-05-25 21:44 努力的达子 阅读(35) 评论(0) 推荐(0)
摘要: reids的持久化是重点 reids是内存数据库,如果不讲内存中的数据保存到磁盘上,那么服务一旦出了问题,服务器中的数据库状态也会消失,所以redis提供了持久化! RDB 在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照中文件直接读到内存中 Re 阅读全文
posted @ 2022-05-25 21:43 努力的达子 阅读(100) 评论(0) 推荐(0)
摘要: 1.INCLUDES模块(redis.conf可以引入其他的配置文件共同起作用) # include /path/to/local.conf # include /path/to/other.conf 2.NETWORK(网络配置) #绑定的ip bind 127.0.0.1 #端口 port 63 阅读全文
posted @ 2022-05-25 21:38 努力的达子 阅读(59) 评论(0) 推荐(0)
摘要: 1.集成springdata中的redis模块 2.说明 springboot2.x之后,原底层操作redis使用的是jedis,被替换成了lettuce 为什么呢? jedis:采用的是直连,多个线程操作的话,是不安全的,如果想要避免不安全,使用jedis pool连接池!其模式更像BIO模式 l 阅读全文
posted @ 2022-05-25 21:37 努力的达子 阅读(70) 评论(0) 推荐(0)
摘要: jedis是redis推荐的java连接工具!使用java操作redis中间件! 使用api和方法名相同 需要导入的包: <dependencies> <!--下载jedis的包--> <dependency> <groupId>redis.clients</groupId> <artifactId 阅读全文
posted @ 2022-05-25 21:32 努力的达子 阅读(201) 评论(0) 推荐(0)
摘要: redis事务本质:一组命令一起执行!一个事务中的所有命令都会被序列化,在被事务执行的过程中,会被顺序执行! 一次性,顺序性,排他性! 1.redis单条命令是保证原子性的,但是事务是不保证原子性的(redis事务没有隔离级别的概念) redis事务的步骤: 1.开启事务(multi) 2.命令入队 阅读全文
posted @ 2022-05-25 21:31 努力的达子 阅读(35) 评论(0) 推荐(0)
摘要: 1.悲观锁:认为什么时候都会出问题,做什么操作都会加锁 2.乐观锁:很乐观,认为什么时候都不会出问题,更新数据时去判断一下,再此期间是否有人更改了这个数据! MULTI(开启事务)/DISCARD(放弃事务) 使用watch 监视 使用案例1:模拟100块钱花去20块钱 127.0.0.1:6379 阅读全文
posted @ 2022-05-25 21:31 努力的达子 阅读(60) 评论(0) 推荐(0)
摘要: 1.geospatial:地理位置 redis得geo在3.2版本后已经推出 2.Hyperloglog:专业做网站计数的或页面统计的(允许一定的错误) redis2.8.9推出了该数据结构 reid Hyperloglog基数统计的算法 优点:占用的内存是固定,2^64不通元素的技术,只需要占用1 阅读全文
posted @ 2022-05-25 21:30 努力的达子 阅读(84) 评论(0) 推荐(0)
摘要: 参考地址:https://www.cnblogs.com/hunternet/tag/Redis/ 五大基本的数据类型: 1.Striing类型 1.String类型 1.追加内容 127.0.0.1:6379> keys * 1) "name" 127.0.0.1:6379> get name " 阅读全文
posted @ 2022-05-25 21:28 努力的达子 阅读(70) 评论(0) 推荐(0)
摘要: reids默认有16个数据库,且默认使用的是第1个 redis.conf配置文件中如下 docker进入交互,执行客户端命令 root@cd8a28bf1a1c:/# redis-cli 127.0.0.1:6379> dbsize(查询当前数据库大小) (integer) 5 127.0.0.1: 阅读全文
posted @ 2022-05-25 21:25 努力的达子 阅读(34) 评论(0) 推荐(0)
摘要: 1.拉去redis [root@wmd01 bin]# docker pull redis 2.创建文件夹: mkdir -p /usr/local/docker/redis/config 将自己的redis.conf文件放入(此处必须放入自己的redis.conf文件,并且必须是提前放入) 3.启 阅读全文
posted @ 2022-05-25 21:23 努力的达子 阅读(184) 评论(0) 推荐(0)
摘要: radis下载路径:http://download.redis.io/releases/ 1.上传redis 2.解压:tar -zxvf 3.配置redis.conf参数 目录:进入redis得安装包 配置参数详解参考 https://www.cnblogs.com/fansik/p/649793 阅读全文
posted @ 2022-05-25 21:19 努力的达子 阅读(101) 评论(0) 推荐(0)
摘要: redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步 免费和开源!是当前最热门的NoSql技术之一!也被人们称之为结构化数据库! Redis能干嘛? 1.内存存储,持久化,内存中是断电即失的,所以说持久化很重要(rdb,a 阅读全文
posted @ 2022-05-25 21:17 努力的达子 阅读(27) 评论(0) 推荐(0)
摘要: 关系型数据库和非关系型数据库的区别 一 关系型数据库有 我们只需要 记住常用的几个:mysql /oracle/sql server/sqlite 几个即可 我还有一篇文章 介绍了 关系型数据库和非关系型数据的数据结构 –红黑树-二叉树-B树 1.首先了解一下 什么是关系型数据库? 关系型数据库最典 阅读全文
posted @ 2022-05-25 21:16 努力的达子 阅读(72) 评论(0) 推荐(0)
摘要: 可以干什么? 1.读写分离 2.数据分片 2.1垂直拆分 2.2水平拆分 2.3垂直+水平拆分 3.多数据源整合 原理: 拦截 阅读全文
posted @ 2022-05-25 21:10 努力的达子 阅读(31) 评论(0) 推荐(0)
摘要: 1.每个slave只有一个master 2.每个slave只能有一个唯一的服务器id 3.每个master可以有多个salve 问题: 延时 阅读全文
posted @ 2022-05-25 21:09 努力的达子 阅读(21) 评论(0) 推荐(0)
摘要: 按照数据操作类型可以分为: 1.读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会相互影响 2.写锁(排他锁):当前操作没有完成前,他会阻断其他写锁和读锁 按照对数据操作的粒度来分: 1.表锁(偏读):偏向MyISAM存储引擎,开销小,加锁快;无死锁锁定粒度大,发生锁冲突的概率最高,并发度 阅读全文
posted @ 2022-05-25 21:08 努力的达子 阅读(38) 评论(0) 推荐(0)
摘要: 索引失效 1.最佳左前缀原则: 如果索引了多列,要遵守最佳左前缀法则,指的是查询从索引的最左列开始,并且不跳过索引中的列. 如给表创建复合索引:create index on 表名(name,age,poit) 1.不会使用索引,具体情况参考:https://www.cnblogs.com/rjzh 阅读全文
posted @ 2022-05-25 21:02 努力的达子 阅读(69) 评论(0) 推荐(0)
摘要: sql执行时间长,性能下降的原因推测: 1.查询语句写的不好 2.索引失效 索引分为: 1.单值索引 create index idx_user_name on user(name) 2.多值索引 create index idx_user_nameEmail on user(name,email) 阅读全文
posted @ 2022-05-25 20:53 努力的达子 阅读(80) 评论(0) 推荐(0)
摘要: 查看所有的存储引擎:发现默认使用的是InnoDB SHOW ENGINES; MyISAM和InnoDB数据库引擎的区别 阅读全文
posted @ 2022-05-25 20:45 努力的达子 阅读(33) 评论(0) 推荐(0)
摘要: 1.mysql架构介绍 1.连接层: 最上层是一些客户端和连接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似tcp/ip的通信 主要是完成一些类似于连接处理、授权认证,及相关的安全方案。在盖层上引入了线程池的概念,为通过认证安全接入客户端提供线程。同样在该层可以实现 基于ssh的 阅读全文
posted @ 2022-05-25 20:44 努力的达子 阅读(42) 评论(0) 推荐(0)
摘要: 1.if函数: if(表达式1,表达式2,表达式3) 执行顺序: 如果表达式1成立,则返回表达式2的值,否则返回表达式3的值 应用: 任何地方 2.case结构: 情况1:类似于java中的switch语句,一般用于实现等值判断 语法: CASE 变量|表达式|字段 WHEN 要判断的值 THEN 阅读全文
posted @ 2022-05-25 20:43 努力的达子 阅读(62) 评论(0) 推荐(0)
摘要: 存储过程和函数:类似于java中的方法 好处: 1 提高代码的重用性 2 简化操作 存储过程:一组雨欣编译好的sql语句集合,理解成批处理语句 1 提高代码的重用性 2 简化操作 3 减少编译次数并且减少了和数据库服务器的连接次数,提高效率 语法: 1.创建语法 CREATE PROCEDURE 存 阅读全文
posted @ 2022-05-25 20:42 努力的达子 阅读(177) 评论(0) 推荐(0)
摘要: 函数:一组雨欣编译好的sql语句集合,理解成批处理语句 1 提高代码的重用性 2 简化操作 3 减少编译次数并且减少了和数据库服务器的连接次数,提高效率 和存储过程的区别: 存储过程:可以有0个返回,也可以有多个返回。适合做批量的插入、批量的更新 函数:只能有一个返回,适合做处理数据后返回一个结果 阅读全文
posted @ 2022-05-25 20:42 努力的达子 阅读(41) 评论(0) 推荐(0)
摘要: 变量: 1.系统变量 1.1全局变量: 作用域:服务器每次启动将会为所有的全局变量赋初始值,针对所有的会话(连接)有效,但不能跨重启(即数据库重启后,又会恢复到默认值) 1.2会话变量 作用域:仅仅针对于当前会话(连接)有效 2.自定义变量:作用域:针对于当前会话(连接)有效。同于会话变量的作用域 阅读全文
posted @ 2022-05-25 20:38 努力的达子 阅读(78) 评论(0) 推荐(0)