摘要: 介绍 Redis中的事务(transaction)是一组命令的集合。 事务同命令一样都是Redis最小的执行单位,一个事务中的命令要么都执行,要么都不执行。 Redis事务的实现需要用到 MULTI 和 EXEC 两个命令,事务开始的时候先向Redis服务器发送 MULTI 命令,然后依次发送需要在 阅读全文
posted @ 2018-04-06 22:58 乐在克里特 阅读(521) 评论(0) 推荐(0) 编辑
摘要: 一、分布式锁的实现方式 分布式锁一般有三种实现方式: 1. 数据库乐观锁; 2. 基于Redis的分布式锁; 3. 基于ZooKeeper的分布式锁; 二、锁的四要素 1.互斥性。在任意时刻,只有一个客户端能持有锁。 2.不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其 阅读全文
posted @ 2018-04-06 22:47 乐在克里特 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 介绍 Redis是一个支持持久化的内存数据库,也就是说Redis需要经常将内存中的数据同步到磁盘来保证持久化。 Redis支持四种持久化方式: 一、 Snapshotting(快照)也是默认方式;RDB 二、Append-Only file(缩写aof)的方式; 三、虚拟内存方式; 四、diskst 阅读全文
posted @ 2018-04-06 22:35 乐在克里特 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 一、基础命令 提示:Redis不区分命令大小写 1.获得符合规则的键名列表 keys pattern //pattern支持glob风格通配符格式 2.判断一个键是否存在 exists key //如果键存在则返回整数类型1,否则返回0 3.删除键 del key [key …] //可以删除一个或 阅读全文
posted @ 2018-04-06 22:31 乐在克里特 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 分布式锁实现的几种方式 基于数据库实现分布式锁(表、数据库排他锁) 基于缓存(redis,memcached,tair) 基于Zookeeper实现分布式锁 关注点: 单点问题?(集群) 失效时间?(锁的释放 VS 失效) 非阻塞?(while自旋 || wacther通知) 非可重入?(记录当前获 阅读全文
posted @ 2018-04-06 17:46 乐在克里特 阅读(234) 评论(0) 推荐(0) 编辑
摘要: ZooKeeper是一个开源的分布式协调服务,由雅虎创建,是Google Chubby的开源实现。ZooKeeper的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用; 分布式一致性特性: 顺序一致性:严格按照其发起顺序 原子 阅读全文
posted @ 2018-04-06 17:20 乐在克里特 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 建索引的几大原则 1.最左前缀匹配原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配。 2.=和in可以乱序,比如a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意顺序,mysql的查询优化器会帮你优化成索引可以识别的形式 3 阅读全文
posted @ 2018-04-06 15:33 乐在克里特 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 基本概要 1.查询的模糊匹配时,避免使用Like '%开头',使得索引失效 2.索引问题 ◆ 避免对索引字段进行运算操作和使用函数 ◆ 避免在索引字段上使用not,<>,!= ◆ 避免在索引列上使用IS NULL和IS NOT NULL ◆ 避免在索引列上出现数据类型转换 ◆ 避免建立索引的列中使用 阅读全文
posted @ 2018-04-06 10:46 乐在克里特 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 分布式事务 分布式事务是指会涉及到操作多个数据库的事务。其实就是将对同一库事务的概念扩大到了对多个库的事务。 分布式事务中需要注意的是分布式系统中存在的一致性问题; CAP原则:在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition toler 阅读全文
posted @ 2018-04-06 10:22 乐在克里特 阅读(307) 评论(0) 推荐(0) 编辑