• 数据结构与对象

    1、简单动态字符串(SDS simple dynamic string)

    2、链表

    3、字典(map)

    4、跳表

    5、整数集合

    6、压缩列表

  • 对象

    Redis并没有直接使用这些数据结构来实现键值对数据库,而是基于这些数据结构创建了一个对象系统,这个系统包含字符串对象、列表对象、哈希对象、集合对象、有序集合对象这五种类型的对象,每种对象都用到了至少一种前面介绍的数据结构。

    Redis使用对象来表示数据库中的键和值,每次当我们在Redis的数据库中新创建一个键值对时,我们至少会创建两个对象,一个对象用作键值对的键(键对象),另一个对象用作键值对的值(值对象)。

    因为字符串键的值为字符串对象,所以用于字符串键的所有命令都是针对字符串对象来构建的。

    Redis数据库中的键值对来说,键总是一个字符串对象,值则可以是**字符串对象(REDIS_STRING),列表对象(REDIS_LIST),哈希对象(REDIS_HASH),集合对象(REDIS_SET)或有序集合对象(REDIS_ZSET)**中的其中一种。

  • 字符串命令的实现

    1、SET

    2、GET

  • 列表对象

    1、LPUSH:将新元素推入到表头

    2、RPUSH:将新元素推入到表尾

    3、LPOP:返回并删除表头节点

    4、RPOP:返回并删除表尾节点

    5、LINDEX:定位并返回列表指定节点

    6、LLEN:返回列表长度

    7、LINSERT:在指定位置插入列表节点

    8、LREM:遍历列表,删除包含给定元素的节点

    9、LTRIM:遍历列表,删除列表中所有不在指定索引范围内的节点

    10、LSET:定位列表指定索引上的节点,然后通过赋值操作,更新替换该节点的值

    11、LRANGE key start stop:获取列表指定范围内的元素

  • 哈希对象

    1、HSET

    2、HGET

    3、HEXISTS:字典中键值对是否存在

    4、HDEL

    5、HLEN:字典中键值对数量

    6、HGETALL:返回所有键值对

  • 集合对象  唯一不可重复

    1、SADD

    2、SCARD:返回集合对象所包含的元素数量

    3、SISMEMBER:集合中是否存在某元素

    4、SMEMBERS:返回所有集合元素

    5、SRANDMEMBER:返回集合中随机个元素

    6、SPOP:随机返回并删除一个集合元素

    7、SREM:删除给定的元素

  • 有序集合

    1、ZADD

    2、ZCARD:返回元素总量

    3、ZCOUNT:统计分值在给定范围内的节点的数量

    4、ZRANGE:返回给定索引范围内的所有元素

    5、ZREVRANGE:倒序返回给定索引范围内的所有元素

    6、ZRANK:给定成员的排名(有序集合中,该给定节点前有多少个节点)

    7、ZREVRANK:倒序排名

    8、ZREM:删除给定节点

    9、ZSCORE:查找给定节点的分数值