`

NoSQL数据库之Redis数据库管理(list类型)

阅读更多

3.list类型及操作

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

        lpush:在key对应list的头部添加字符串元素。

redis 127.0.0.1:6379> lpush mylist "world"
(integer) 1
redis 127.0.0.1:6379> lpush mylist "hello"
(integer) 2
redis 127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "world"

        0代表头部第一个元素,-1代表尾部第一个元素。lrange mylist 0 -1表示从list中头第一个元素一直到尾第一个元素依次取出来,即第一个元素取到最后一个元素。

        rpush:在key对应list的尾部添加字符串元素。

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

        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"

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

redis 127.0.0.1:6379> rpush mylist4 "hello"
(integer) 1
redis 127.0.0.1:6379> lset mylist4 0 "world"
OK
redis 127.0.0.1:6379> lrange mylist4 0 -1
1) "world"

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

redis 127.0.0.1:6379> rpush mylist5 "hello"
(integer) 1
redis 127.0.0.1:6379> rpush mylist5 "hello"
(integer) 2
redis 127.0.0.1:6379> lrem mylist5 1 "hello"  //从mylist5中删除1个和hello相同的元素
(integer) 1  //代表删除元素的个数

        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
(integer) 1
redis 127.0.0.1:6379> lrange mylist8 0 -1
1) "two"

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

redis 127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "world"
redis 127.0.0.1:6379> lpop mylist
"hello"
redis 127.0.0.1:6379> lrange mylist 0 -1
1) "world"

        rpop:从list的尾部删除元素,并返回删除元素

redis 127.0.0.1:6379> lrange mylist2 0 -1
1) "hello"
2) "world"
redis 127.0.0.1:6379> rpop mylist2
"world"
redis 127.0.0.1:6379> lrange mylist2 0 -1
1) "hello"

        lists类型

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

redis 127.0.0.1:6379> lrange mylist5 0 -1
1) "three"
2) "hello"
redis 127.0.0.1:6379> lrange mylist6 0 -1
1) "hello"
2) "foo"
redis 127.0.0.1:6379> rpoplpush mylist5 mylist6
"hello"
redis 127.0.0.1:6379> lrange mylist5 0 -1
1) "three"
redis 127.0.0.1:6379> lrange mylist6 0 -1
1) "hello"
2) "hello"
3) "foo"

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

redis 127.0.0.1:6379> lrange mylist5 0 -1
1) "three"
2) "foo"
redis 127.0.0.1:6379> lindex mylist5 0
"three"
redis 127.0.0.1:6379> lindex mylist5 1
"foo"

        llen:返回key对应list的长度

redis 127.0.0.1:6379> lrange mylist6 0 -1
1) "hello"
2) "hello"
3) "foo"
redis 127.0.0.1:6379> llen mylist6
(integer) 3

 

说明:本文是我网上学习LAMP兄弟连李捷老师《NoSQL数据库之Redis数据库管理》的学习笔记。

分享到:
评论

相关推荐

    性能超越Redis的NoSQL数据库SSDB.zip

    SSDB 是一个 C/C 语言开发的高性能 NoSQL 数据库, 支持 zset(sorted set), map(hash), kv, list 等数据结构, 用来替代或者与 Redis 配合存储十亿级别列表的数据. SSDB 在 QIHU 360 被大量使用, 同时也被国内外业界...

    类似redis的高性能nosql​数据库LedisDB.zip

    LedisDB 是一个参考ssdb,采用go实现,底层基于leveldb,类似redis的高性能nosql数据库,提供了kv,list,hash以及zset数据结构的支持。 最开始源于ssdb,在使用了一段时间之后,因为兴趣的原因,决定用go实现一个...

    NoSQL数据库Ardb.zip

    Ardb是一个新的构建在持久化Key/Value存储实现上的NoSQL DB服务实现,支持list/set/sorted set/bitset/hash/table等复杂的数据结构,以Redis协议对外提供访问接口。 ... 标签:Ardb NoSQL数据库

    Redis3_win.zip:一款高性能的NOSQL系列的非关系型数据库

    redis是一款特殊的数据库软件,它是一款高性能的NOSQL系列的非关系型数据库。Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset...

    Redis开发实战视频.zip

    0101 NoSQL数据库简介 0102 Redis简介 0103 Redis组件安装 0104 Redis服务配置 0105 Redis基础认证 0106 redis-benchmark 0201 Redis多业务管理 0202 文本数据类型 0203 keys命令 0204 Hash数据类型 0205【 数字操作...

    天涯社区开源的NoSQL数据库 Memlink.zip

    特点:内存数据引擎,性能极为高效List块链结构,精简内存,优化查找效率Node数据项可定义,支持多种过滤操作支持redo-log,数据持久化,非Cache模式分布式,主从同步 Memlink主要应用于天涯论坛类型产品(论坛、来...

    redis 2.4.5-windows32-win64

    Redis,典型的NoSQL数据库服务器,它可以作为服务程序独立运行于自己的服务器主机。在很多时候,人们只是将Redis视为Key/Value数据库服务器,然而事实并非如此,在目前的版本中,Redis除了Key/Value之外还支持List、...

    HM2:利用 LSM 树的 KeyValue NoSQL 数据库

    HM2 - 利用 LSM 树的键/值 NoSQL 数据库 为什么是另一个键/值? 我们与 Apache Cassandra 合作了很多,但我们从不需要它的分布式功能。 我们也使用 Redis,但问题是数据必须适合内存。 该项目的目标是。 键/值...

    C#操作Redis明细内容 C#调用redis c#使用redis业务 C# Redis操作类 C#中Redis封装的类 C#

    1)Redis是一种基于键值对的NoSQL数据库(非关系型数据库);是一个key-value存储系统 2)高性能、可靠性 Redis将数据存储在内存中,读写性能高;Redis提供了 RDB和AOF持久化,可将内存数据存盘,避免断电数据丢失 ...

    springboot整合Redis

    它存储的value类型比较丰富,也被称为结构化的NoSql数据库。 Spring Data Redis 是 Spring 的一部分,提供了在 Spring 应用中通过简单的配置就可以访问 Redis 服务,对 Redis 底层开发包进行了高度封装。在 Spring ...

    redis win10 安装包

    Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-...Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份。

    Redis-begin.zip_Redis java_adodb REDIS_java redis_redis_site:www

    Redis,典型的NoSQL数据库服务器,和BerkeleyDB相比,它可以作为服务程序独立运行于自己的服务器主机。在很多时候,人们只是将Redis视为Key/Value数据库服务器,然而事实并非如此,在目前的版本中,Redis除了Key/...

    Windows 64位 Redis-3.2.100 解压即用

    Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-...Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份。

    KitDB内嵌式NoSQL数据库 v0.2.6

    KitDB内嵌式NoSQL数据库是一个内嵌式持久型的高速NoSQL存储lib,以jar包方式嵌入到应用中。 KitDB提供了类似Redis的数据结构。如KV、List、Map、ZSET等。也提供了TTL(生存时间)、备份、ACID事物,多节点强一致性...

    redis 使用说明

    Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-...• Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份

    Redis中文手册

    和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hashs(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更...

    Redis入门到精通视频教程

    Redis可以理解为一个key-value存储系统,是当下互联网公司常用的NoSQL数据库之一,是进入互联网行业的Java开发工程师必备技术。 在本课程中,你将了解Redis是什么、能干什么、如何用,了解NoSQL的使用场景和概念,...

    KitDB内嵌式NoSQL数据库

    KitDB是一个内嵌式持久型的高速NoSQL存储lib,以jar包方式嵌入到应用中。KitDB提供了类似Redis的数据结构。如KV、List、Map、ZSET等。也提供了TTL(生存时间)、备份、ACID事物,多节点强一致性等功能。KitDB完全...

    ledisdb:由Go支持的高性能NoSQL数据库服务器

    LedisDB Ledisdb是用编写的高性能NoSQL数据库库和服务器。 它类似于Redis,但将数据存储在磁盘中。 它支持许多数据结构,包括kv,list,hash,zset,set。 LedisDB现在支持多个不同的数据库作为后端。特征丰富的数据...

Global site tag (gtag.js) - Google Analytics