redis——list类型的设计与实现
2016-03-28 08:23
447 查看
Redis list -- 双向链表,l(L)开头 | ||
命令 | 效果 | 备注 |
lpush listkey value | 在list的头部添加value | lpush list01 lzj |
lrange listkey start end | 表示从下标start开始取到end | lrange list01 0 -1 |
lset listkey index value | 设置list中指定下标的值 | lset list01 1 24 |
lrem listkey index value | 从下标开始删除list中和value相同的元素 | lrem list01 0 lzj |
ltrim listkey from to | 保留指定范围内的数据 | ltrim list01 0 1 |
lpop listkey | 从list的头部删除并返回元素 | lpop list01 |
lindex listkey index | 获取指定下标的数据 | lindex list01 1 |
llen | 获取list的长度 | llen list01 |
1.链表结点(双向链表)
struct listNode {
//前驱结点
listNode *next;
//后继结点
listNode *prev;
//结点的值
void *value;
}
redis对双向链表进行了包装并提供了很多常用函数
struct list {
//链表头结点
listNode *head;
//链表末尾结点
listNode *tail;
//链表的元素数量
unsigned long len;
//结点值复制函数
void *(*dup) (void *ptr);
//结点值释放函数
void (*free) (void *ptr);
//结点值比较函数
int (*match) (void *ptr,void *key);
} list;
相关文章推荐
- redis安装问题小结
- 使用 Redis 和 Python 构建一个共享单车的应用程序
- Redis偶发连接失败案例实战记录
- Redis中实现查找某个值的范围
- redis的hGetAll函数的性能问题(记Redis那坑人的HGETALL)
- Redis和Memcached的区别详解
- 分割超大Redis数据库例子
- Redis总结笔记(一):安装和常用命令
- Redis sort 排序命令详解
- 用Redis实现微博关注关系
- redis中修改配置文件中的端口号 密码方法
- 在Ruby on Rails上使用Redis Store的方法
- 浅析SQL Server中的执行计划缓存(上)
- Enterprise Library for .NET Framework 2.0缓存使用实例
- Redis和Memcache的区别总结
- PowerShell中编程清空IE缓存方法
- PowerShell中使用.NET将程序集加入全局程序集缓存
- C#中Ilist与list的区别小结
- C#中IList<T>与List<T>的区别深入解析
- C#中缓存的基本用法总结