• Redis 的操作为什么是的原子性的详解
  • 原子性原子性是数据库的事务中的特性。在数据库事务的情景下,原子性指的是:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。对于Redis而言,命令的原子性指的是:一个操作的不可以再分,操作要么执行,要么不执行。Redis操作原子性的原因Redis的操作之所以是原子性的,是因为Redis是单线程的。由于对操作系统相关的知识不是很熟悉,从上面这句话并不能真正理解Redis操作是原子性的原因,进一步查阅进程与线程的概念及其区别。进程与线程进程计算机中...
  •  2020-06-15  |    程成  |    348  |    0  |    数据库  |   redis  原子性  事务  
  • MAC使用homeBrew安装Redis
  • 一般买了macbook第一件事就是把homeBrew和iterm2装上,它们俩的组合可以实现绝大多数的软件安装。网上有很多教程安装它们的,关于homeBrew的操作命令如下:brew search **  //查找某个软件包brew list  //列出已经安装的软件的包brew install ** //安装某个软件包,默认安装的是稳定版本brew uninstall **/...
  •  2020-06-13  |    程成  |    363  |    0  |    数据库  |   Mac  Redis  homeBrew  启动  
  • redis 和 kafka 的区别
  • Kafka与Redis PUB/SUB之间较大的区别在于Kafka是一个完整的系统,而Redis PUB/SUB只是一个套件(utility)——没有冒犯Redis的意思,毕竟它的主要功能并不是PUB/SUB。redis 消息推送(基于分布式 pub/sub)多用于实时性较高的消息推送,并不保证可靠。其他的mq和kafka保证可靠但有一些延迟(非实时系统没有保证延迟)。redis-pub/sub断电就清空,而使用redis-list作为消息推送虽然有持久化,但是又太弱智,也并非完全可靠不会丢。另...
  •  2020-03-02  |    程成  |    536  |    0  |    数据库  |   redis  kafka  缓存  
  • mysql深入理解前缀索引
  • 有时候需要很长的索引字符串,这样会使得索引变的很大而且很慢.通常可以索引开始的部分字符,这样可以大大节省空间提升索引效率,但这样也会降低索引的选择性.索引的选择性是指,不重复的索引值和数据表的记录总数的比值,范围从1#T到1之间.索引的选择性越高则查询效率越高,因为选择性高的索引可以让mysql在查找时过滤掉更多的行,唯一索引的选择性是1,这是最好的索引选择性,性能也是最好的.     一般情况下某个列前缀的选择性也是足够高的,足以满足查询性能.对于BLOB,TEX...
  •  2020-03-02  |    程成  |    475  |    0  |    数据库  |   MySQL  前缀索引  数据库  优化  
  • MYSQL全文索引的深入理解
  • 摘要:在开发中经常会有这样的一个功能:就是一篇文章,可能会添加多个TAG标签,而数据库设计的话通常是用一个字段来存储这些标签的,如字段名为“tag”的值为“1,3,4,5,7”这样的,用户可能会通过这些标签...在开发中经常会有这样的一个功能:就是一篇文章,可能会添加多个TAG标签,而数据库设计的话通常是用一个字段来存储这些标签的,如字段名为“tag”的值为“1,3,4,5,7”这样的,用户可能会通过这些标签来搜索相关内容,之前如果想查询标签包含1的内容的时候,用的都是 find_in_set(...
  •  2020-03-02  |    程成  |    472  |    0  |    数据库  |   mysql  数据库  索引  
  • MySQL 区分大小写问题(库名,表名,字段列名,数据值)
  • 最近在开发建表中,突然想到一个问题,我可以将字段设置成大写吗?MySQL 区分大小写吗?后来做了一番实验,发现区分大小写除了和系统有关,还和你的大小写位置有关。我当前操作系统是 Linux,以下 Linux 的结论我都是亲测过的,windows 结论选自网络,大家可以动手实践下。一、MySQL 库名区分大小写吗这是我的本地库,我想在 weilin_test 库下使用 sys 库再使用 Sys 库(不存在),首字母大写结果不行。结论:Linux 下 库名在 MySQL 中是严格区分大小写的,Win...
  •  2019-04-29  |    程成  |    1585  |    0  |    数据库  |   MySQL  大小写  区分  数据库  
  • 项目中常用的19条 MySQL 优化
  • 原文地址:https://segmentfault.com/a/1190000012155267声明一下:下面的优化方案都是基于 “ Mysql-索引-BTree类型 ” 的一、EXPLAIN做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划。下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据type列,连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式key_len...
  •  2019-04-09  |    程成  |    1158  |    1  |    数据库  |   MySQL  优化  数据库  项目  
  • MySQL 常用两种存储引擎选择 (MyISAM 和 InnoDB)
  • InnoDB和MyISAMInnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为: MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持以及外部键等高级数据库功能。所以从宏观来讲,事务数据库关注细节,而数据仓库关注高层次的聚集,所以,InnoDB更适合作为线上的事务处理,而MyISAM更适合作为ROLA...
  •  2019-02-27  |    程成  |    950  |    1  |    数据库  |   MySQL  存储引擎  MyISAM  InnoDB  
  • MySQL几种存储引擎介绍,以及适用场景
  • 一、存储引擎Isam该引擎在包括MySQL 5.1及其以上版本的数据库中不再支持。该引擎在读取数据方面速度很快,而且不占用大量的内存和存储资源;但是 Isam 不支持事务处理、不支持外键、不能够容错、也不支持索引。Berkeley该引擎在包括MySQL 5.1及其以上版本的数据库中不再支持。该存储引擎支持COMMIT和ROLLBACK等事务特性。CSV使用该引擎的MySQL数据库表会在MySQL安装目录data文件夹中的和该表所在数据库名相同的目录中生成一个.CSV文件(所以,它可以将CSV类型...
  •  2019-02-27  |    程成  |    1210  |    0  |    数据库  |   MySQL  存储引擎  数据库  
  • MySQL 外键约束 FOREIGN_KEY_CHECKS 启动和关闭
  • 当我导出表时,看见了下面两句SQL,明显 FOREIGN_KEY_CHECKS 是外键校验的意思。SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; ---------------------这里是你的SQL语句----------------------- SET FOREIGN_KEY_CHECKS = 1;但是为什么要先关闭外键约束,再开启外键约束。是因...
  •  2019-02-27  |    程成  |    1659  |    0  |    数据库  |   外键  MySQL  数据库  
  • MySQL 主要使用的几种索引
  • 一、索引定义MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索引包含多个列。创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。实际上,索引也是一张表,该表保存了主键与...
  •  2019-02-26  |    程成  |    1217  |    0  |    数据库  |   MySQL  索引  数据库  优化  
  • Redis 持久化存储(AOF/Snapshot)
  • Redis中数据存储模式有2种:cache-only,persistence;cache-only即只做为“缓存”服务,不持久数据,数据在服务终止后将消失,此模式下也将不存在“数据恢复”的手段,是一种安全性低/效率高/容易扩展的方式;persistence即为缓存中的数据持久备份到磁盘文件,在服务重启后可以恢复,此模式下数据相对安全。     持久化数据的方式很多,基于各种考虑面,可能最终导致的设计手段有所差异。针对互联网应用,服务提供者必须具备并发访问/数据安全/...
  •  2019-02-18  |    程成  |    935  |    0  |    数据库  |   Redis  持久化  AOF  Snapshot  
  • 什么是数据库?什么是关系型数据库?什么是非关系型数据库?
  • 本文内容:什么是数据库什么是关系数据库什么是非关系型数据库  PS:虽然这些东西都是一些比较基础常识的东西,但为了记录自己的学习之路,也为了为以后的一些突发奇想留下“坑”,所以写下了这篇博文。什么是数据库? 数据库是数据的仓库。与普通的“数据仓库”不同的是,数据库依据“数据结构”来组织数据,因为“数据结构”,所以我们看到的数据是比较“条理化”的(比如不会跟以前的普通文件存储式存储成一个文件那么不条理化,我们的数据库分成一个个库,分成一个个表,分成一条条记录,这些记录...
  •  2019-02-14  |    程成  |    818  |    0  |    数据库  |   数据库  关系型  SQL