键空间
Redis是一个键值对(key-value pair)数据库服务器,服务器中的每个数据库都由一个redis.h/redisDb结构表示,redisDb结构都dict字典保存了数据库中的所有键值对,我们将这个字典称为键空间(key space)
typedef struct redisDb {
// 保存着数据库以整数表示的号码
int id;
// 保存着数据库中的所有键值对数据
// 这个属性也被称为键空间(key space)
dict *dict;
// 保存着键的过期信息
dict *expires;
// 实现列表阻塞原语,如 BLPOP
dict *blocking_keys;
dict *ready_keys;
// 用于实现 WATCH 命令
dict *watched_keys;
} redisDb;
原理
键空间和用户所见对数据库是直接对应的:
1.键空间的键也就是数据库的键,每个键都是一个字符串对象
2.键空间的值也就是数据库的值,每个值可以是字符串对象,列表对象,哈希表对象,集合对象和有序集合对象在内的任意一种Redis对象
实例
redis> SET message "hello world"
OK
redis> RPUSH alphabet "a" "b" "c"
(integer) 3
redis> HSET book name "Redis in Action"
(integer) 1
redis> HSET book author