一、List集合
底层是一个双向无环链表实现的,有一个头指针和一个尾指针,可以迅速的定位到开头和结尾。
lpush k3 a b c d e
相当于一个双向无环链表,然后每次lpush的话是每次将后面的数据拼接到前一个数据的左边
比如上述命令,其实在里面存储的顺序会是 e d c b a
lpop k3
就是把当前的栈顶的弹出来,所以如下图所示,返回的是e
找某个范围内的
lrange k3 0 -1
靠着索引找某个具体位置的
lindex k3 2
设置某个具体的值
lset k3 2 xxxx
移除List中的值
如果key后面的参数数字是大于0的话,就代表着移除n个value值,比如下面这个就会是移除依次从左到右数的三个a字符串
LREM k6 3 a
在具体的某个字符串后插入一个
linsert k6 after 8 a
未插入之前
执行上述命令之后,a就插入到后8 的后面
二、Sorted sets 有序集合
重新设置zset集合的value值
给value增加某个特定的数值 ,比如
zincrby k1 10 apple
就是给apple的分数值加上了10
先看一下k2和k3的对比,然后对两个进行union计算
设置不同的权重值
三、Hash
Hashes: 由field和关联的value组成的map。field和value都是字符串的。这和Ruby、Python的hashes很像。
下表列出了 redis hash 基本的相关命令:
序号 | 命令及描述 |
1 | HDEL key field1 field2 删除一个或多个哈希表字段 |
2 | HEXISTS key field 查看哈希表 key 中,指定的字段是否存在。 |
3 | HGET key field 获取存储在哈希表中指定字段的值。 |
4 | HGETALL key 获取在哈希表中指定 key 的所有字段和值 |
5 | HINCRBY key field increment 为哈希表 key 中的指定字段的整数值加上增量 increment 。 |
6 | HINCRBYFLOAT key field increment 为哈希表 key 中的指定字段的浮点数值加上增量 increment 。 |
7 | HKEYS key 获取所有哈希表中的字段 |
8 | HLEN key 获取哈希表中字段的数量 |
9 | HMGET key field1 field2获取所有给定字段的值 |
10 | HMSET key field1 value1 field2 value2 同时将多个 field-value (域-值)对设置到哈希表 key 中。 |
11 | HSET key field value 将哈希表 key 中的字段 field 的值设为 value 。 |
12 | HSETNX key field value 只有在字段 field 不存在时,设置哈希表字段的值。 |
13 | HVALS key 获取哈希表中所有值。 |
14 | HSCAN key cursor [MATCH pattern] [COUNT count] 迭代哈希表中的键值对。 |