字典定义
字典,又称为符号表(symbol table)、关联数组(associative array)或映射(map),是用于保存键值对的抽象数据结构。
字典中的键值对
字典中的每个键都是独有的,程序可以在字典中根据键查找与之关联的值(用键查值),通过键来更新值,通过键删除整个键值对等。
Redis中的字典实现
字典是一种常用数据结构在高级编程语言中一般会内置,Redis使用的C没有内置这种数据结构,故构建了自己的字典实现。
字典在Redis中的应用
Redis的数据库是使用字典来作为底层实现的,对数据库的增删改查都是构建在对字典的操作之上的。
示例:
在数据库中创建一个键为“msg” 值为“hello world”的键值对,这个键值对就保存在了代表数据库的字典里面。
字典也是哈希键的底层实现之一,当一个哈希键包含的键值对比较多,或者键值对的元素都是比较长的字符串时,Redis就会使用字典作为哈希键的底层实现。
这里和链表的应用有异曲同工之妙。
(链表——列表键,字典——哈希键)。
示例:website是一个包含10086个键值对的哈希键,这个哈希键的键都是一些数据库的名字,值是数据库的主页网址。
website键的底层实现就是一个字典,字典中包含10086个键值对。