
数据库
jcsyl_mshot
点滴生活,水落石出。
展开
-
B树与B+树索引
B 树数据库结构使用树的结构索引,从算法逻辑上看,二叉查找树的查找速度和比较次数都是最小的。数据库的索引存储在磁盘上,当数据量比较大的时候,索引的大小可能有几个G 甚至更多。当我们利用索引查询的时候,不可能把整个索引加载到内存,能做的只有逐一加载每一个磁盘页,磁盘页对应索引树的节点。当利用二叉查找树时,每一层都是进行一次IO操作(即把对应的索引装入内存),因此最坏的情况下,磁盘的IO次...原创 2018-04-09 11:30:45 · 282 阅读 · 0 评论 -
Redis Cluster 运维常见问题
1.集群完整性 cluster-require-full-coverage 默认yes 大部分业务无法容忍。 2.带宽消耗 官方建议:1000节点 .cluster-node-timeout. 节点之间通过ping/pong消息 不可忽视的带宽消耗 3.pub/sub 广播 4.集群倾斜:内存不均匀 1.数据倾斜 节点和槽的分配不均【不常见】 包含bigkey 不同槽对应键...原创 2018-05-18 22:06:31 · 1166 阅读 · 0 评论 -
Redis 主从复制
Redis 复制的原理和优化1.什么是主从复制单机问题 机器故障(高可用问题)、容量瓶颈、QPS瓶颈(分布式问题) 一主多从 redis(master)–>复制–>redis(slave) 主结点的更新讲同步到从结点 作用:为数据提供多个副本 扩展读性能 总结: 一个master 可以有多个slave 一个slave 只能有一个master 数据流向是单向...原创 2018-05-12 21:29:11 · 159 阅读 · 0 评论 -
开发与运维中的问题-主从复制
1.读写分离读流量分摊到从节点。(网络阻塞,可能出现主从不一致) 1.复制数据延迟 2.读到过期数据(slave 无法删除数据权限,无法删除过期数据,redis 3.2以及解决) 3.从节点故障2.主从配置不一致1.例如maxmemory 不一致:丢失数据 2.例如数据结构优化参数不一致3.规避全量赋值1.第一次全量复制不可避免(解决方案:小主节点、低峰) 2.节点运...原创 2018-05-12 21:53:17 · 177 阅读 · 0 评论 -
Redis Sentinel
11原创 2018-05-12 22:00:22 · 399 阅读 · 0 评论 -
缓存的使用和设计
缓存的收益和成本1.收益 加速读写。 cpu L1/L2/L3 Cache 浏览器缓存 降低后端负载:后端服务器通过前端缓存降低负载2.成本 数据不一致:缓存层和数据层有时间窗口不一致 代码维护成本 运维成本:Redis cluster3.使用场景 .对高消耗的SQL:join 结果集统计结果缓存 加速请求响应 大量些合并为批量写。缓存更新策略1.LRU/LF...原创 2018-05-19 11:49:16 · 164 阅读 · 0 评论 -
数据库相关问题
一. 如果在数据库上进行了误操作该怎么处理。 1.利用数据备份。 2.利用 binlog 文件。二. 数据库在进行水平分表之后, sql 分页查询该怎么进行? 分表之后想让一个 id 多个表是自增的, 效率实现 。 数据库中的分页查询语句怎么写? 1.用 union all 合并几个分表的结果集, 之后进行分页查询。SELECT * FROM((SELECT id,money,cre...原创 2018-05-07 10:59:04 · 433 阅读 · 0 评论 -
Redis Sentinel 常见问题
节点运维节点上下线:主节点,从节点,sentinel 节点 机器下线:例如过保等情况 机器性能不足:CPU,内存等下线: 主节点:sentinel failover (忽略主客观下线,领导选举) 从节点:临时下线还是永久下线,但是要考虑读写分离情况上线: 主节点:sentinel failover 从节点:slave of sentinel 节点:参考其他节点启动即可...原创 2018-05-15 12:54:02 · 1577 阅读 · 0 评论 -
Redis cluster
呼唤集群1.10w/没秒 正常上万是没有问题的,业务需要并发量100w/s 2.机器内存16~256G,业务需要500G数据分布搭建集群集群伸缩客户端路由集群原理...原创 2018-05-15 14:33:59 · 206 阅读 · 0 评论 -
Redis 相关面试题(上)
(1)什么是redis?Redis 是一个基于内存的高性能key-value数据库。 (2)Reids的特点Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-...原创 2018-06-10 21:00:31 · 277 阅读 · 0 评论 -
Redis 开发运维问题-持久化
fork 操作1.同步操作 内存页的拷贝,本身速度非常快,不会阻塞主线程 2.与内存量有关:内存越大,耗时越长 3.info:latest_fork_usec #fork 所需时间 4.改善fork 1).有限使用物理机 2).控制Redis 实例最大可用内存 3).linux内存分配策略 4).降低fork 频率子进程的开销和优化1.cpu 开销:RDB和A...原创 2018-05-12 20:07:10 · 201 阅读 · 0 评论 -
数据库命令语句及存储过程
数据库语句中连接内连接(inner join):只显示符合连接条件的记录。[TEST1@orcl#16-12 月-11] SQL>select * from t1; ID NAME1 aaa 2 bbb[TEST1@orcl#16-12 月-11] SQL>select * from t2; ID AGE 1 20 3 30 [TEST1@or...原创 2018-04-26 18:39:47 · 1762 阅读 · 0 评论 -
索引
在数据之外,数据库系统还维护着特定结构,这些数据结构以某种方式引用指向数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构,就是索引. 索引在MySQL中也叫做键,是存储引擎用于快速找到记录的一种数据结构,尤其是当表中的数据量越来越大时,索引对性能的影响越来越大。索引优化是对查询性能优化最有效的手段了,索引能够轻易将查询性能提高好几个数量级.索引基础在MySQL 中,先在索...原创 2018-04-09 16:20:58 · 317 阅读 · 0 评论 -
Redis 基本概念
redis 是什么? 开源 基于键值对的存储服务系统 java map / python Dict /Ruby… 多种数据结构 /字符串/哈希/列表/集合/有序集合 高性能、功能丰富谁在使用? GitHub twitter(社交网络) stackOverflow Alibaba group baidu meituan sohuRedis特性1.速度快(每秒...原创 2018-04-18 21:55:36 · 281 阅读 · 0 评论 -
InnoDB与MyISAM区别
Oracle收购sun(sun之前收购了mySQL),发布的首个版本5.5,默认使用了InnoDB作为存储引擎,而之前的版本使用MyISAM作为默认。1.MyISAM 和 InnoDB的适用场景MyISAM适合:读多写少(1)做很多count 的计算;(2)插入不频繁,查询非常频繁;(3)没有事务。InnoDB适合:写多读少(1)可靠性要求比较高,或者要求事务;(2)表更新和查询都...原创 2018-04-25 23:22:27 · 663 阅读 · 0 评论 -
数据库中事务
事务四大特性(简称ACID)1、原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行。 2、一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致。事务必须是使数据库从一个一致性状态变到另一个一致性状态。多个账户钱的总和不变 3、隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中...原创 2018-04-25 23:25:23 · 118 阅读 · 0 评论 -
数据库锁
锁是一种并发控制技术,锁是用来在多个用户同时访问同一个数据的时候 保护数据的。 1.锁类型 共享(S)锁:多个事务可封锁一个共享页;任何事务都不能修改该页; 通常是该页被 读取完毕,S 锁立即被释放。在执行 select 语句的时候需要给操作对象(表或者一些记录) 加上共享锁,但加锁之前需要检查是否有排他锁,如果没有,则可以加共享锁(一个对象 上可以加 n 个共享锁),否则不行。共享锁通常在执...原创 2018-04-26 00:05:13 · 173 阅读 · 0 评论 -
Redis API的使用和理解
1.通用命令1 keys * 计算所有健【o(n)】 key he* key he[h-l]* //第三位是h-l 之间 key ph? //只代表三位2.dbsize 数据库大小(键值对个数)【o(1) 故可以随意使用】3.判断键的存在性 EXISTS key 存在返回1 否则 0【一般可以随意使用】4.删除键 DEL key[key...原创 2018-05-10 19:11:42 · 2173 阅读 · 0 评论 -
Redis 客户端
Java 客户端:jedisredis-cli :官方提供的客户端 jedis :是java 语言根据redis 规范提供的客户端 / 1.获取jedis1.生成一个jedis 对象,负责与指定的redis 节点进行通信 Jedis(String host,int port,int connectionTimeout,int soTimeout) connection...原创 2018-05-10 19:39:58 · 137 阅读 · 0 评论 -
瑞士军刀 Redis
慢查询1.生存周期1.发送命令 2.排队 3.执行命令 该阶段发生慢查询,客户端超时不一定是慢查询,慢查询是客户端超时一个因素。 4.返回结果2.两个配置 1.慢查询是一个先进先出队列 且固定长度,保存在内存内 2.慢查询阀值 slowlog-log-slower-than =0,记录任何命令(所有命令进入慢查询队列) 3.两个配置默认值 ...原创 2018-05-10 21:41:21 · 485 阅读 · 0 评论 -
Redis 持久化的取舍和选择
持久化的作用1.什么是持久化redis 将数据保存在内存中,对数据的跟新异步保存在磁盘当中。2.持久化实现方式快照,某时某点数据的备份 1.Mysql Dump 2.redis RDB 写日志 1.MySql binlog 2.redis AOFRDB1.什么是RDBredis[内存】—->创建快照—->RDB 文件(二进制)—-&gt...原创 2018-05-10 22:31:04 · 642 阅读 · 0 评论 -
Redis 相关面试题(下)
(1)redis的缓存失效策略和主键失效机制作为缓存系统都要定期清理无效数据,就需要一个主键失效和淘汰策略.在Redis当中,有生存期的key被称为volatile。在创建缓存时,要为给定的key设置生存期,当key过期的时候(生存期为0),它可能会被删除。 1、影响生存时间的一些操作 生存时间可以通过使用 DEL 命令来删除整个 key 来移除,或者被 SET 和 GETSE...原创 2018-06-10 21:56:04 · 2667 阅读 · 0 评论