NoSQL数据库每一个都有自己的API和接口,不想关联数据库都支持SQL,所以针对不同的数据类型,有对应的操作,我们要熟悉每种数据类型的特点,在需要用到的时候到何时的地方看有没有可能需要用到的操作方法
一般右边插入,左边读取
1.Redis-List类型操作
Redis的Value除了可以存储普通的字符串类型以外, 还可以存储List类型
List类型就相当于在C语言中学习的链表, 可以把整个链表当做一个Value存储起来
注意点: List是有序的
- 增加
- 从第二个Value开始添加到前一个的左边
lpush key value1 value2 value3
lpush city bj sh gz - 从第二个Value开始添加到前一个的右边
rpush key value1 value2 value3
rpush city bj sh gz
- 从第二个Value开始添加到前一个的左边
- 查询
- 索引从0开始, 如果想取出对应key所有的内容, endIndex可以写-1
lrange key startIndex endIndex
lrange city 0 2
lrange city 0 -1
- 索引从0开始, 如果想取出对应key所有的内容, endIndex可以写-1
- 删除
- count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。
- count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。
- count = 0 : 移除表中所有与 value 相等的值。
lrem key count value
rpush city bj sh gz bj wh hz gz bj
执行之前: bj sh gz bj wh hz gz bj
lrem city 1 bj
执行之后: bj sh gz bj wh hz gz bj
执行之前: bj sh gz bj wh hz gz bj
lrem city 2 bj
执行之后: sh gz wh hz gz bj
执行之前: bj sh gz bj wh hz gz bj
lrem city -1 bj
执行之后: bj sh gz bj wh hz gz
执行之前: bj sh gz bj wh hz gz bj
lrem city -2 bj
执行之后: bj sh gzwh hz gz
执行之前: bj sh gz bj wh hz gz bj
lrem city 0 bj
执行之后: sh gzwh hz gz
- 追加(修改)
- 继续通过lpush或者rpush指定对应的key即可给原有key增加节点内容
- 例如: 以前city中存储的数据是 bj sh gz
- rpush city wh
- bj sh gz wh
- 修改
注意 index从0开始
lset key index value
lset city 2 yy - 插入
如果通过lpush或者rpush追加内容, 要么追加到链表的最左边, 要么就是追加到链表的最右边
linsert key before|after 现有value 新增value
linsert www before b f
linsert www after b g
rpush www a b c
lpush www d
rpush www e