![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 65
野心很大的天蝎
失败往往是黎明前的黑暗,继之而出现的就是成功的朝霞。
展开
-
Redis缓存穿透、击穿和雪崩
缓存穿透是指当用户在查询一条数据的时候,而此时数据库和缓存却没有关于这条数据的任何记录,而这条数据在缓存中没找到就会向数据库请求获取数据。用户拿不到数据时,就会一直发请求,查询数据库,这样会对数据库的访问造成很大的压力。如:用户查询一个 id = -1 的商品信息,一般数据库 id 值都是从 1 开始自增,很明显这条信息是不在数据库中,当没有信息返回时,会一直向数据库查询,给当前数据库的造成很大的访问压力。缓存穿透的发生一般是受到 “黑客攻击” 所导致的,所以应该进行监控,如果真的是黑客攻击,及时添加黑名单原创 2022-07-04 21:32:13 · 409 阅读 · 0 评论 -
Redis集群相关知识
先说一下Redis的主从复制,默认情况下,每台Redis服务器都是主节点,集群模式都是采用哨兵模式来监控的。主从复制:是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave 以读为主。主要作用:①数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。②故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速原创 2022-07-04 15:21:41 · 167 阅读 · 0 评论 -
Redis的发布订阅功能
Redis 发布/订阅是一种消息传模式,其中发送者(在Redis术语中称为发布者)发送消息,而接收者(订阅者)接收消息。传递消息的通道称为channel。下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:接下来是一组实例,以下实例演示了发布订阅是如何工作的,需要开启两个 redis-cli 客户端。在我们实原创 2022-07-04 14:40:01 · 383 阅读 · 0 评论 -
Redis持久化相关内容
说到Redis持久化,先简单说一下Redis的配置文件,在以后的工作做一些配置更加方便使用。 ①单位,注意Redis不区分大小写,Redis配置对大小写不敏感。 ②包含,搭建Redis集群的时候,可以使用Include包含其他配置文件 ③网络④通用⑤持久化(RDB),持久化,在规定的时间内,执行了多少次操作则会持久化到文件.rdb.aof文件注意Redis是内存数据库,如果没有持久化,那么数据断电即消失! ⑥security安全,这里可以设置Redis密码,Redis默认是没有原创 2022-07-04 14:05:15 · 126 阅读 · 0 评论 -
Redis在Jedis中的使用,以及SpringBoot整合Redis
Jedis是Redis官方推荐的java连接开发工具,但是现在的SpringBoot2.0以上的版本将Jedis换成Lettuce,但是Jedis还是很好用的,在Jedis中连接使用Redis,和Redis控制台命令完全一致。1、使用idea创建一个meavn项目2、在pom文件中添加依赖(Jedis和fastjson) 3、连接测试,连接的是本地的Redis服务,连接远程需要更改配置文件和关闭防火墙,先打开redis-server.exe,再进行下面的测试。返回PONG,表示连接成功。4、常用AP原创 2022-07-04 09:41:56 · 1219 阅读 · 0 评论 -
Redis中的事务和乐观锁
简单的说一下事务,所谓事务有四个特性:原子性(atomicity),一致性(consistency),隔离性(isolation),持久性(durability)。①原子性:一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。②一致性: 事务必须是使数据从一个一致性状态变到另一个一致性状态,一致性与原子性是密切相关的。③隔离性:一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。④持久性:指的是一个事务一旦提交,原创 2022-07-02 18:43:25 · 247 阅读 · 0 评论 -
Redis三大特殊数据类型
上一章讲到redis的五种基本数据类型,string、list、hash、set、zset,这次简单聊一下redis的三种特殊数据类型,虽然基本数据类型可以解决我们日常需求,但是特殊的数据类型,帮我们解决一些特殊的情景是很有必要的。 实际需求中,我们可以用来查询附近的人、计算两人之间的距离等。当然,那些所需的经纬度我们肯定要结合java代码来一次导入,手动查询和录入太过于浪费时间! 1):两极无法直接添加,我们一般会下载城市数据,直接通过java程序一次性导入 2)原创 2022-07-01 20:27:55 · 985 阅读 · 0 评论 -
Redis学习
Redis(Remote Dictionary Server)是一个开源的使用ANSI C语言编写、支持网络,可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。其次redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并在此基础上实现master-slave(主从)同步。Redis是免费开源,当下最热门的NoSQL技术之一,也叫结构化数据库。很多人就好奇Redis到底能干嘛,简单说:1、内存存储,持久化,内存中是断电即失、所以持久化很重要,常用的持久化方法(原创 2022-07-01 19:27:51 · 219 阅读 · 0 评论 -
常用的 DBA 命令及设计三范式
1、查看用户拥有的数据库对象select object_name from user_objects;系统表总结:USER_TABLESUSER_SEQUENCESUSER_VIEWSUSER_INDEXESUSER_CONSTRAINTSUSER_OBJECTSSESSION_PRIVS2、查看约束信息select constraint_name from user_constraints;3、查看用户拥有的表select table_name from原创 2021-06-29 21:06:43 · 188 阅读 · 0 评论 -
存储过程,触发器,游标
存储过程最直接的理解:就是保存了批量的 sql(select,insert,if for),以后可以通过一个名字 把这些批量的 sql 执行,使用存储过程在大批量数据查询或计算时会带来高性能,存储过程 编写和调试比较复杂,不同数据库产品存储过程差异非常大,很难实现平滑移植1建立存储过程create or replace procedure proc_test(in_var number,out_var out sys_refcursor)asbeginopen out...原创 2021-06-29 20:52:55 · 356 阅读 · 0 评论 -
数据库索引,视图,序列,idnex,view,sequence
1、索引的目的是提高查询数据的速度,索引就像一本书的目录一样,索引的建立原则:比较少的 DML(insert、update、delete),经常出现在 where 语句中的字段建立索引:如经常根据 birthday 进行查询,建立索引如下:create index t_student_birthday on t_student(birthday);删除索引 drop index t_student_birthday;主键建立后,会相应的为主键建立索引,所以根据主键查询,通常比普通字段原创 2021-06-29 20:08:51 · 273 阅读 · 0 评论 -
Oracle数据库中,表的操作
1、创建表 create table 表名( 字段名 类型, 字段名 类型, ............);建立学生信息表,字段包括:学号、姓名、性别、出生日期、email、班级create table t_student( student_id number(10), student_name varchar2(5...原创 2021-06-29 19:05:49 · 839 阅读 · 0 评论 -
Oracle中事务
事务,是不可再分的最小工作单元,从宏观角度表示一个完整不可分割的业务,就是批量的DML语句必须同时成功或者同时失败,只要是DML语句开始执行就表示开启了一个事务,只要commit语句执行,标志着事务的结束。在同一事务中,所有的DML语句同时执行成功才会使用commit提交,只要是其中一个DML语句执行失败就要rollback回滚。针对于数据库,事务保证批量的sql要么全成功,要么全失败,事务特征如下:1、原子性:整个事务中所有操作,必须作为一个单元全部完成(或全部取消)。2、一致性:在事务开始之原创 2021-06-29 16:04:14 · 269 阅读 · 0 评论 -
insert update delete
insert 语法格式insert into 表名(字段,。。。。) values(值,………..);省略字段的插入insert into emp values(9999, 'zhangsan', 'MANAGER', NULL, NULL, 200, 100, 10);指定字段的插入insert into emp(empno, ename, job, mgr, hiredate, sal, comm, deptno) values(999...原创 2021-06-29 12:12:18 · 143 阅读 · 0 评论 -
Oracle常用单行函数
1、将字段名转换为小写,查询员工表姓名 lowerselect lower(ename) from emp;2、将字段名转换为大写,查询job为manager的员工 upperselect * from emp where job = upper('manager');3、substr 方法参数('被截取的字符串','从哪一位开始截取','截取的位数');查询姓名以M开头的所有员工 substrselect * from emp where substr(ename,1,1)='M'原创 2021-06-29 11:25:58 · 150 阅读 · 0 评论 -
修改Oracle系统管理员密码
1、 win+R 输入cmd 进入命令提示窗口2、输入 sqlplus /nolog 回车3、原创 2021-06-01 17:22:55 · 2164 阅读 · 0 评论 -
使用oracle管理员用户创建普通用户,并且授权
1、win+R 以Oracle数据库管理员的身份登录salplus sys/密码 或者 sqlplus system/原创 2021-06-01 17:27:42 · 932 阅读 · 0 评论 -
oracle中常见的DBA命令以及设计三范式
select object_name from user_objects;原创 2021-06-02 11:18:23 · 111 阅读 · 0 评论