前言:
而今各位老铁们对“字符串中的数字排序”大致比较关怀,大家都需要知道一些“字符串中的数字排序”的相关知识。那么小编在网摘上网罗了一些有关“字符串中的数字排序””的相关知识,希望姐妹们能喜欢,大家快快来学习一下吧!list 字符串列表的特性
Redis list 列表是简单的字符串列表,按照插入顺序排序。我们可以添加元素在列表的头部(左边)或者尾部(右边),就是类似于一个双端列表。
如果是从数组的两端开始删除数据,则会比较快,如果是从中间开始删除,就会比较慢。类似于我们 Java ArrayList使用数组的方式,同事也具有 LinkedList 双向连接的方式。
表的特性
Redis list 列表是简单的字符串列表,按照插入顺序排序。我们可以添加元素在列表的头部(左边)或者尾部(右边),就是类似于一个双端列表。
如果是从数组的两端开始删除数据,则会比较快,如果是从中间开始删除,就会比较慢。类似于我们 Java ArrayList使用数组的方式,同事也具有 LinkedList 双向连接的方式。
list 相关命令
list 相关的命令都是 以 "l" 开头,表示 list 类型的操作,redis 中并不区分命令的大小写。
操作
命令
例子
说明
从左侧添加
lpush
lpush key v1 v2 v3
从右侧添加
rpush
rpush key v1 v2 v3
查看元素
lrange
lrange key 0 -2
0为查看的开始位置, -2为查看到倒数第二个(如果数组的长度为5,即显示前三个);
lrange key 0 -1, 表示查看所有的元素值
从头部弹出元素
lpop
lpop key
执行弹出操作后,弹出元素将不存在与key中
从尾部弹出元素
rpop
rpop key
执行弹出操作后,弹出元素将不存在与key中
查看数组的长度
llen
llen key
返回数组的长度,如果说数组不存在,那么返回0
向存在的数组的左边插入值
lpushx
lpush key value
如果数组key 不存在,则不会插入值,并且返回一个0
向存在的数组的右边插入值
rpushx
rpush key value
如果数组key 不存在,则不会插入值,并且返回一个0
删除数组中的值
lrem
lrem key count value
向集合中删除 count个值,比如:
lrem mylist 2 3, 指的是从前到后,删除2个,值为 3 的 value 值lrem mylist -2 3, 指的是从后到前,删除2个,值为 3 的 value 值lrem mylist 0 3, 指的删除 所有 值为 3 的 value 值
向指定下标处插入值
lset
lset key index value
向数组中下标值为 index 的插入一个元素 value
例如: lset mylist 3 mmm
向指定值的地方插入
linsert
linsert key before value newValue
向数组中值为 value 前面插入 newValue
linsert key after value newValue
向数组中值为 value 后面插入 newValue
将列表中尾部的数据弹出,添加到头部
rpoplpush
rpoplpush mylist1 mylist2
将 mylist1 中的最后一个元素弹出,并且压入到 ,mylist2 中的头部
详细说明
常用操作(lpush、rpush、lrange)
127.0.0.1:6379> lpush index 1 2 3 4 # 从左边插入新的元素,按照数据插入顺序新增(integer) 4127.0.0.1:6379> lpush index 0 -1 # 再从左边添加新的元素(integer) 6127.0.0.1:6379> lrange index 0 -1 # 查看数组中的元素(0 到 -1 表示所有的)1) "-1"2) "0"3) "4"4) "3"5) "2"6) "1"127.0.0.1:6379> rpush index a b c # 从右边添加元素(integer) 9127.0.0.1:6379> lrange index 0 -1 # 再次查看添加的元素1) "-1"2) "0"3) "4"4) "3"5) "2"6) "1"7) "a"8) "b"9) "c"127.0.0.1:6379>
弹出元素操作(lpop、rpop)
127.0.0.1:6379> lpush list one two three four five # 添加元素(integer) 5127.0.0.1:6379> lrange list 0 -1 # 查看添加的元素1) "five"2) "four"3) "three"4) "two"5) "one"127.0.0.1:6379> lpop list # 移除 list 中的第一个元素"five"127.0.0.1:6379> rpop list # 移除 list 中的最后一个元素"one"127.0.0.1:6379> lrange list 0 -11) "four"2) "three"3) "two"127.0.0.1:6379>
删除操作(lrem)
具体查询上面表格中说明的部分
127.0.0.1:6379> lpush mylist 3 2 1 0 2 3 1 (integer) 7127.0.0.1:6379> lrange mylist 0 -11) "1"2) "3"3) "2"4) "0"5) "1"6) "2"7) "3"127.0.0.1:6379> lrem mylist -1 1 # 从后到前,删除 1个值为 1 的元素(integer) 1127.0.0.1:6379> lrange mylist 0 -1 # 查看1) "1"2) "3"3) "2"4) "0"5) "2"6) "3"127.0.0.1:6379> lrem mylist 1 3 # 从前到后,删除 1 个值为 3 的元素(integer) 1127.0.0.1:6379> lrange mylist 0 -11) "1"2) "2"3) "0"4) "2"5) "3"127.0.0.1:6379> lrem mylist 0 3 # 删除所有值为 3 的元素(integer) 1127.0.0.1:6379> lrem mylist 0 2 # 删除所有值为 2 的元素(integer) 2127.0.0.1:6379> lrange mylist 0 -11) "1"2) "0"127.0.0.1:6379>
索引与长度(lindex、llen)
127.0.0.1:6379> lpush list 1 2 3 4(integer) 4127.0.0.1:6379> llen list # 查看数组的长度(integer) 4127.0.0.1:6379> lindex list 0 # 通过指定的下标来获取值"4"127.0.0.1:6379> lindex list 2"2"127.0.0.1:6379>
更新与修剪操作(lset、ltrim)
127.0.0.1:6379> rpush list one two three four(integer) 4127.0.0.1:6379> lrange list 0 -11) "one"2) "two"3) "three"4) "four"127.0.0.1:6379> lset list 0 4 # 将下标为0 的元素值,修改为 4OK127.0.0.1:6379> lrange list 0 -11) "4"2) "two"3) "three"4) "four"127.0.0.1:6379> lindex list 3 # 根据指定的下标获取元素值"four"127.0.0.1:6379>
特殊操作(rpoplpush)
127.0.0.1:6379> lpush list msg1 msg2 msg3 msg4 msg5(integer) 5# 移除list 中的最后一个元素,添加到 listbak 中,# 这里 listbak 之前并不存在,在执行了这个操作之后,会自动创建127.0.0.1:6379> rpoplpush list listbak "msg1"127.0.0.1:6379> lrange list 0 -1 # 查看原有的数组值1) "msg5"2) "msg4"3) "msg3"4) "msg2"127.0.0.1:6379> lrange listbak 0 -1 # 新的数组值1) "msg1"127.0.0.1:6379>
标签: #字符串中的数字排序