摘要:
type命令实际返回的就是当前键的数据结构类型,它们分别是:string(字符串)、hash(哈希)、 list(列表)、set(集合)、zset(有序集合),但这些只是Redis对外的数据结构。 实际上每种数据结构都有自己底层的内部编码实现,而且是多种实现,这样Redis会在合适的场景选择合适的内 阅读全文
摘要:
核心知识点: 1.单线程机制:所有命令放在一个队列中 2.为什么Redis单线程这么快?内存中执行、非IO阻塞、避免线程切换和竞态产生的消耗。 3.单线程的问题?一个命令不能执行太长时间,不然会阻塞其他命令的执行。 Redis使用单线程架构和I/O多路复用模型来实现高性能的内存数据服务。 下面尝试说 阅读全文
摘要:
zrank key member zrevrank key member zrange key start end [withscores] zrevrabge key start end [withscores] zrangebyscore key min max [withscores] zre 阅读全文
摘要:
集合(set)类型也是用来保存多个字符串元素的,但和列表类型不一样的是, 集合中不允许有重复元素,并且集合中的元素是无序的,不能通过索引下标获取元素。 ,如下图所示,集合set:1包含着“a”、“b”、“c“四个元素,一个集合最多可以存储2**32 -1个元素。 Redis除了支持集合内的增删改查, 阅读全文
摘要:
O(n),n是pivot距离列表头或尾的距离 列表(list)类型是用来存储多个有序的字符串,如下图所示,a、b、c、d、e五个元素从左到右组成了一个有序的列表, 列表中的每个字符串称为元素(element),一个列表最多可以存储2**32 -1个元素。 在Redis中,可以对列表两端插入(push 阅读全文
摘要:
几乎所有的编程语言都提供了哈希(hash)类型,它们的叫法可能是哈希、字典、关联数组。 在Redis中,哈希类型是指键值本身又是一个键值对结构,形如value={{field1,value1},...{fieldN,valueN}}, Redis键值对和哈希类型二者的关系可以用下图来表示: 注意:哈 阅读全文
摘要:
字符串类型是Redis最基础的数据结构。首先键都是字符串类型。 而且其他几种数据结构都是在字符串类型基础上构建的,所以字符串类型能为其他四种数据结构的学习奠定基础。 字符串类型的值可以是字符串(简单的字符串、复杂的字符串(例如JSON、XML))、数字(整数、浮点数)、 甚至是二进制(图片、音频、视 阅读全文
摘要:
Redis有5种数据结构,它们是键值对中的值,对于键来说有一些通用的命令。 1.查看所有键 命令:keys * 2.键总数 命令:dbsize dbsize命令会返回当前数据库中键的总数。 dbsize命令在计算键总数时不会遍历所有键,而是直接获取Redis内置的键总数变量,所以dbsize命令的时 阅读全文
摘要:
Redis借鉴了Linux操作系统对于版本号的命名规则: 版本号第二位如果是奇数,则为非稳定版本(例如2.7、2.9、3.1),如果是偶数,则为稳定版本(例如2.6、2.8、3.0、3.2), 当前奇数版本就是下一个稳定版本的开发版本,例如2.9版本是3.0版本的开发版本,所以我们在生产环境通常选取 阅读全文
摘要:
核心知识点 1.InnoDB:数据和索引存放在单独的文件,聚簇索引,行级锁,事务,MVCC 2.MyISAM: (1)缺点:不支持事务和表级锁,因为不支持表锁,锁颗粒比较大,因此适合只读和小文件。 (2)文件:数据文件和索引文件以.MYD和.MYI结尾。 (3)压缩表:压缩表不能修改,可以减少磁盘占 阅读全文