列表类型(list)
列表类型可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的某一个片段。
列表类型内部是使用双向链表实现的,所以列表两端添加元素是非常快的,获取越接近两端的元素速度就越快。
通过列表特点可以模拟栈、队列
列表的应用场景
社交网站的新鲜事,我们关心的只是最新的内容,使用列表类型存储,即使新鲜事的总数达到几千万个,获取其中位于list两端最新的100条数据也是很快的。
列表类型适合用来记录日志,可以保证加入新日志的速度不会受到已有日志数量的影响
列表类型还可以作为队列
命令
向列表两端增加元素
//lpush命令用来向列表左边增加元素,返回列表长度 lpush key value [value ...] //rpush命令用来向列表右边增加元素 rpush key value [value ...] 例子: 127.0.0.1:6379> lpush key 1 2 3 4 (integer) 4
从列表两端弹出元素
//lpop命令从列表左边取出一个元素 lpop key //rpop命令从列表右边取出一个元素 rpop key
可以使用上面4个命令模拟栈和队列的操作。
如果列表模拟栈:lpush 和 lpop rpush 和 rpop
如果想列表模拟队列:
lpush 和 rpop
rpush 和 lpop
总结:只要从不同方向读,取就是队列,从相同方向读与取就是栈。
3. 获取列表中元素的个数
llen key
当key不存在就会返回0
4. 获得列表片段
lrange key start stop
例子:
//获取列表中所有的值
lrange key 0 -1