Redis设计与实现 (三): 字典
摘要:哈希表 结构定义dict.h/dictht table是一个数组, 每个元素是一个指向dict.h/dictEntry 结构的指针. 哈希表节点 next属性指向下一个节点, 形成链表, 解决哈希冲突. 字典 type 和 privdata属性都是针对不同类型的键值对, 为创建多态字典设置. ht数
阅读全文
Redis设计与实现 (二): 链表
摘要:Redis实现为双链表结构, 列表键的底层实现之一就是链表, 发布与订阅, 慢查询, 监视器等功能都用到了链表. Redis本身也使用链表维持多个客户端. 节点定义, 位于 adlist.h/listNode 链表结构定义, 位于adlist.h/list Redis链表特性总结 :
阅读全文
Redis设计与实现 (一): 简单动态字符串
摘要:1.定义 Redis没有使用C语言的字符串, C语言的字符串只会用在不需要对字符串修改而只使用其值地方. Redis使用SDS表示字符串, 结构定义 : SDS也是以'\0'表示结束, 这一个字节不会计入已使用的长度. 这样做的好处是可以重用C字符串函数库里面的一部分函数. 2.SSD和C字符串的区
阅读全文
Redis基本操作
摘要:Redis基于事件驱动模型, 单进程单线程. 也是内存数据库, 不同于Memcached的是, Redis提供持久化存储, 支持多种数据结构, 支持数据备份. 优势 安装 make完后 redis-2.8.17目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序r
阅读全文
MYSQL主从复制
摘要:主从复制原理 : 通过在主库记录二进制日志, 在从库重放日志. 复制如何工作 1.在主库更改记录到二进制日志 2.备库将主库的日志复制到自己的中继日志 3.备库读取中继日志的事件, 将其重放到备库数据之上. 实际操作 主库是阿里云 : 112.74.20.150 , 备库是腾讯云 : 119.29.
阅读全文
Memcached 基本操作
摘要:本质上,Memcached是一个简洁的key-value存储系统, 可以保存布尔,整数,浮点数,对象,数组,NULL,二进制数据(视频,音频,文件)。通过在内存中维护一张巨大的hash表. 每次客户端先访问Memcached, 如果命中直接返回数据, 否则丛数据库中查询返回给客户端. 然后更新Mem
阅读全文
mysql优化概述
摘要:apache默认最大并发连接是150个, mysql默认最大并发连接为100个,可动态调整 常用的缓存技术 : 磁盘缓存(页面静态化), 内存缓存(redis, memcached, mysql的memory引擎) 索引类型 主键索引:一个表中只能有1个,可以多列,效率高。 唯一索引:如果没有制定n
阅读全文
sql入门
摘要:给出一张成绩表, 查询表中至少有5名学生选修的并以3开头的课程的平均分数。 having做第二次筛选, 使用聚合函数. 查询最低分大于70,最高分小于90的Sno列 多字段group by, 只要注意先对第一个字段group by, 后面的内容在对前面的内容group by即可.
阅读全文
第一章 MYSQL的架构和历史
摘要:在读第一章的过程中,整理出来了一些重要的概念. 锁粒度 表锁(服务器实现,忽略存储引擎). 行锁(存储引擎实现,服务器没有实现). 事务的ACID概念 原子性(要么全部成功,要么全部回滚). 一致性(从一个一致性状态转换到另外一个一致性状态). 隔离性(一个事务所做的修改在提交前,对其他事务是不可见
阅读全文
数据库范式简介
摘要:范式,NF,normal format,就是指对表的结构的要求! 目的:1,规范结构!2,减少数据冗余! 第一范式,1NF,字段原子性 要求字段不能再分,要求字段的原子性 第二范式,2NF,非部分依赖 增加唯一主键即可!ID 范式的要求,是逐渐递增! 在满足了第一范式的前提下,不能出现部分依赖! 部
阅读全文
MYSQL基础知识
摘要:复习一下以前学过的数据库知识 在mysql配置文件my.ini中默认配置了数据库文件存放目录 datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/" mysql库选项 : 只有字符集,校对集的概念. 在数据库目录下db.opt文件中 default
阅读全文