特点:
Map,相当与一个简单的 Redis、field不能相同,value 可以相同
序号 | API | 说明 | 时间复杂度 |
---|---|---|---|
1 | incrbyfloat key 3.1 | 增加 key 对应值3.1 | O(1) |
2 | getrange key start end | 获取字符串指定的下标所有的值 | O(1) |
3 | setrange key index value | 设置指定下标所有的对应的值 | O(1) |
4 | set key value | 设置 key-value | O(1) |
5 | get key | 获取 key-value | O(1) |
6 | del key | 删除 key-value | O(1) |
7 | setnx setxx | 根据 key 是否存在设置 key-value | O(1) |
8 | mget mset | 批量操作 key-value | O(n) |
9 | hgetall | 返回 hash key 对应的所有的 field 个 value | O(n) |
10 | hvals key | 返回 hash key对应所有的 field value | O(n) |
11 | hkeys key | 返回 hash key对应所有的 field key | O(n) |
12 | hget key field | 获取 hash key对应的 field 的 value | O(1) |
13 | hset key field value | 设置 hash key 对应的 field value | O(1) |
14 | hdel key field | 删除 hash key对应的 field 的 value | O(1) |
15 | hexists key field | 判断 hash key 是否有 field | O(1) |
16 | hlen key | 获取hash key field 数量 | O(1) |
17 | hmget key field1 field2 ... fieldn | 批量获取一批数据 | O(n) |
18 | hmset key f1 v1 f2 v2... fn vn | 批量设置一批数据 | O(n) |
19 | hgetall key | 返回 hash key 对应的所有的 field 和 value | O(n) |
20 | hsetnx key field value | 设置 hash key 对应的 field 的 value(如 field 已经存在,则失败) | O(1) |
21 | hincrby key field value intCounter | 设置 hash key 对应的 field 的 value intCounter | O(1) |
21 | hincrbyfloat key field value floatCounter | 设置 hash key 对应的 field 的 value floatCounter | O(1) |
特点:
有序,可以重复,左右两边插入弹出
序号 | API | 说明 | 时间复杂度 |
---|---|---|---|
1 | lpop | 从列表左侧弹出一个 item | O(1) |
2 | rpop | 从列表右侧弹出一个 item | O(1) |
3 | lrem key count value | 根据 count 值,从列表中删除所有的 value 相等的项 :(1)count > 0,从左到右删除最多 count 个value相等的项;(2)count < 0,从右到左删除最多 Math.abs(count) 个 value 相等的项;(2)count = 0,删除所有的 value 相等的项。 | O(n) |
4 | ltrim key start end | 按照索引范围修剪列表 | O(n) |
5 | lrange key start end(包含 end) | 获取列表指定索引范围所有的 item | O(n) |
6 | lindex key index | 获取指定列表索引 item | O(n) |
7 | llen key | 获取列表长度 | O(1) |
8 | lset key index newValue | 设置列表指定位置指定值 | O(n) |
9 | blpop key timeout | lpop阻塞版本,timeout是阻塞时长,timeout=0为永远不过期 | O(1) |
10 | brpop key timeout | rpop的阻塞版本,timeout是阻塞超时时间timeout=0为永远不过期 | O(1) |
11 | rpush key v1 v2 ... vn | 从列表右端插入值(1~n个) | O(1~n) |
12 | linsert key before/after value newValue | 在 list 指定的值前/后插入 newValue | O(n) |
特点:
无序、无重复、集合间操作
序号 | API | 说明 | 时间复杂度 |
---|---|---|---|
01 | sadd key ele | 向集合中 key 添加ele(如果已经存在,添加失败) | O(1) |
02 | srem key ele | 将集合 key 中 ele 移除掉 | O(1) |
03 | sadd key score ele | 添加 score 和 ele (可以是多对) | O(logN) |
04 | score key ele | 返回元素的分数 | O(1) |
05 | zincrby key increScore ele | 增加或者减少元素的分数 | O(1) |
06 | zcard key | 返回元素的总个数 | O(1) |
07 | zrange key start end | 返回指定索引范围内升序元素(分值) | O( log(n)+ m) |
08 | zrangebyscore key minScore maxScore | 返回指定分数范围内升序元素(分值) | O( log(n)+ m) |
09 | zcount key minScore maxScore | 返回指定分数范围内元素个数 | O( log(n)+ m) |
10 | zremrangebyrank key start end | 删除指定排名内的升序元素 | O( log(n)+ m) |
12 | zremrangebyscore key minScore maxScore | 删除指定 分数内的升序元素 | O( log(n)+ m) |
pipline
1.Redis 的命令时间是微秒级别的;
2.pipline 每次条数需要控制;
3.M操作与 pipline 操作比较类似,pipline 每次只能作用于一个节点;
命令 | N 个命令操作 | 1次 pipline(n 个命令) |
---|---|---|
时间 | n次网络+n次命令 | 1次网络+n次命令 |
数量 | 1命令 | n次命令 |
网友评论