[Redis源码系列]在Liunx安装和常见API
为什么要从Redis源码分析
String底层实现——动态字符串SDS
前言hello,又见面了。不要问为什么,问就是勤劳。马上要开启爆更模式啦。在Redis中链表List的应用非常广泛,但是Redis是采用C语言来写,底层采用双向链表实现(这边提一嘴,如果是科班出身或者大学有学过数据结构的同学,可以划走啦)。我们今天的重点就是双向链表。
API使用先来使用一下API。如果之前有用过的同学,可以直接跳到下一小节。
lpush左侧插入数据使用lpush命令往list的左侧中插入a,b,c三个字符,这边注意顺序,查询出来的是c,b,a。下面会说为什么,先挖个坑。
rpush右侧插入数据使用rpush命令往list中插入d,e两个字符,查询出来的顺序是和我们想的一样,最后两位是d,e。
删除某个数据使用lrem命令删除a字符,那么中间1代表什么意思呢?其为count,表示移除列表中与a相等的元素个数。即如果count>0,表示从表头开始向表尾搜索,移除count个与a相等的元素。如果count<0,表示从表尾开始向表头搜索,移除count个与a相等的元素。如果count=0,移除所有与a相等的元素,因为是移除所有,所以不管从表头还是表尾,结果是一样的。