一  lists类型及操作

List是一个链表结构,主要功能是push,pop,获取一个范围的所有值等等,操作中key理解为链表的名字。 Redis的list类型其实就是一个每个子元素都是sring类型的双向链表。我们可以通过push,pop操作从链表的头部或者尾部添加删除元素,这样 list既可以作为栈,有可以作为队列。

二 lists类型的使用

1. lpush

在key对应list的头部添加字符串。

redis 127.0.0.1:> lpush mylist1 world
(integer)
redis 127.0.0.1:> lpush mylist1 hello
(integer)
redis 127.0.0.1:> lrange mylist1 -
) "hello"
) "world"

2. rpush

在key对应list的尾部添加字符串。

redis 127.0.0.1:6379> rpush mylist2 bbb
(integer) 1
redis 127.0.0.1:6379> rpush mylist2 aaa
(integer) 2
redis 127.0.0.1:6379> lrange mylist2 0 -1
1) "bbb"
2) "aaa"

3. linsert

在key对应的list的特定位置前或后添加字符串。

redis 127.0.0.1:6379> rpush mylist3 world
(integer) 1
redis 127.0.0.1:6379> linsert mylist3 before world hello
(integer) 2
redis 127.0.0.1:6379> lrange mylist3 0 -1
1) "hello"
2) "world"

4. lset

设置list中指定下标的元素值。

redis 127.0.0.1:> rpush mylist5 world
(integer)
redis 127.0.0.1:> lset mylist5 hello
OK
redis 127.0.0.1:> lrange mylist5 -
) "hello"

5 lrem

从key对应list中删除n个和value相同的元素。( n < 0 从未删除, n =0 全部删除)

redis 127.0.0.1:> rpush mylist6 hello
(integer)
redis 127.0.0.1:> rpush mylist6 hello
(integer)
redis 127.0.0.1:> lrem mylist6 hello
(integer)

6 ltrim

保留指定key 的范围内的数据。

redis 127.0.0.1:6379> rpush mylist8 one
(integer) 1
redis 127.0.0.1:6379> rpush mylist8 two
(integer) 2
redis 127.0.0.1:6379> ltrim mylist8 1 -1
OK
redis 127.0.0.1:6379> lrange mylist8 0 -1
1) "two"

7 lpop

从list的头部删除元素,并返回删除元素。

redis 127.0.0.1:6379> rpush mylist11 one
(integer) 1
redis 127.0.0.1:6379> rpush mylist11 two
(integer) 2
redis 127.0.0.1:6379> rpush mylist11 three
(integer) 3
redis 127.0.0.1:6379> lpop mylist11
"one"
redis 127.0.0.1:6379> lrange mylist11 0 -1
1) "two"
2) "three"

8.rpoplpush

从第一个list的尾部移出元素并添加到第二个list的头部。

redis 127.0.0.1:> rpush mylist12 one
(integer)
redis 127.0.0.1:> rpush mylist12 two
(integer)
redis 127.0.0.1:> rpush mylist13 aaa
(integer)
redis 127.0.0.1:> rpush mylist13 bbb
(integer)
redis 127.0.0.1:> rpush mylist13 ccc
(integer)
redis 127.0.0.1:> rpoplpush mylist12 mylist13
"two"
redis 127.0.0.1:> lrange mylist12 -
) "one"
redis 127.0.0.1:> lrange mylist13 -
) "two"
) "aaa"
) "bbb"
) "ccc"

9 lindex

返回名称为key的list中index位置的元素。

redis 127.0.0.1:6379> lrange mylist13 0 -1
1) "two"
2) "aaa"
3) "bbb"
4) "ccc"
redis 127.0.0.1:6379> lindex mylist13 0
"two"
redis 127.0.0.1:6379> lindex mylist13 1
"aaa"
redis 127.0.0.1:6379> lindex mylist13 2
"bbb"

10 llen

返回key对应list的长度。

redis 127.0.0.1:6379> llen mylist13
(integer) 4
redis 127.0.0.1:6379> lrange mylist13 0 -1
1) "two"
2) "aaa"
3) "bbb"
4) "ccc"

最新文章

  1. 非阻塞同步算法实战(三)-LatestResultsProvider
  2. 在Sharepoint 2013中,使用JS判断当前用户是否在某个组里面
  3. 体系结构设计MVC
  4. [驱动]内核添加USB转串口驱动支持
  5. 【python】sys.argv[]的用法
  6. python简单网络服务器
  7. hibernateTemplate的load方法
  8. mysql-connector-python
  9. tomcat与resin的比较
  10. Java进阶03 IO基础
  11. 4、深入理解Bean
  12. Grails框架使用指南
  13. phpstorm激活码生成器地址
  14. ajax核心技术1---XMLHttpRequset对象的使用
  15. js的点滴
  16. [转]Docker学习之四:使用docker安装mysql
  17. scrapy 在迭代爬取时被拒 offsite 增加dont_filter=True
  18. [转]谈谈 Bias-Variance Tradeoff
  19. scrapy中deferred的回调
  20. spring boot 开发 org.springframework.context.ApplicationContextException: Unable to start web server;

热门文章

  1. 使用gulp插件来自动刷新页面。
  2. Android Studio Jar、so、library项目依赖
  3. 【C#】实现按Windows排序方式排序
  4. 文件“D:\file.txt”正由另一进程使用,因此该进程无法访问该文件。
  5. Tomcat7.x 与 Tomcat6.x
  6. matlab批量合并txt文件
  7. Android 6.0 SDK 找不到HttpClient的解决方法
  8. [CareerCup] 7.3 Line Intersection 直线相交
  9. 20135202闫佳歆--week 8 进程的切换和系统的一般执行过程--学习笔记
  10. c#字符串转换为日期,支持任意字符串