@(redis初识)[linux安装|redis启动|redis报错|redis特性|redis常用类型|通用命令| 速度快]
文章目录
redis 列表(list)的使用
redis 特点
- 1 有序
- 2 可以重复
- 3 左右两边插入弹出
重要API
1. rpush key value1 value2 value3 ... // 列表右端插入值 (1-N个 O(1~N)) (插入后 value2 在value1的右边, 以此类推)
2. lpush key value1 value2 value3 ... // 列表左端插入值 (1-N个 O(1~N)) (插入后 value2 在value1的左边, 以此类推)
3. linsert key before|after value newValue // 在list 指定值前|后 插入newValue O(n)
4. lpop key // 从列表左侧弹出一个item O(1)
5. rpop key // 从列表右侧弹出一个item O(1)
6. lrem key count value // 根据count值, 从列表中删除所有Value相等的项, 1)count > 0, 从左到右,删除最多个count 个value 相等的项。 2) count < 0 , 从右往左,删除最多 Math.abs(count) 个value相等的项。 3) count = 0, 删除所有value 相等的项 O(n)
7. ltrim key start end // 按照索引范围修剪列表 (这个key 总个数会变) O(n)
8. lrange key start end (包含end) // 获取列表指定索引范围所有item (这个key 里总数不会变) O(n)
9. lindex key index // 获取列表指定索引的item (O(n)) eg : lindex key -1 获取最右边的那一个
10. llen key // 获取列表的长度 o(1)
11. lset key index newValue // 设置列表指定索引值为newValue
12. blpop key timeout // lpop 的阻塞版本, 即如果链表里没有数据,则在timeout 时间内等待有数据, 如果timeout = 0 为永远阻塞直到有值
13. brpop key timeout // rpop 的阻塞版本。
redis 集合(set)的使用
set的特点
- 1 无序
- 2 无重复
- 3 集合间操作
set的API使用
1. sadd key element // 向集合key里面添加element元素(O(1), 如果元素存在,则添加失败)
2. srem key element // 向集合key里面删除element元素 (O(1))
3. scrad key // 计算集合的大小
4. sismember key element // 判断 elememnt 元素有没有在key集合里 (1:存在;0:不存在)
5. srandmember key count // 从key集合里,随机挑出count个元素
6. spop key // 从key集合里随机弹出一个元素 , 该元素移除该集合
7. spop key count // 从key集合随机弹出count个元素, 并将它们都移除该集合
8. smembers key // 获取集合所有元素 (这个取出来的元素是无序的)
Set 的其他使用
1. sdiff key1 key2 // 获取key1集合与key2集合的差集 (不同的元素集合)
2. sinter key1 key2 // 获取key1集合与key2集合的交集 (相同的元素集合)
3. sunion key1 key2 // 获取key1集合与key2集合的并集 (所有元素总和,相同的只留一份)
4. sdiff|sinter|sunion+store destkey key1 key2 // 将差集、交集、并集。结果保存在destkey集合里
(eg: sdiffstore destkey key1 key2 // 获取key1与key2的差集,并保存在destkey集合里)
Redis 的 有序集合 (Zset)
Zset 的特性
- 1 有序
- 2 无重复
- 3 有score属性 (用来排序用的)
Zset的API使用
1. zadd key score element(可以多对) // 添加score 和 element (score 可以重复, elememnt 不可以重复 O(logN))
2. zrem key element(可以多个) // 删除element 元素 (O(1))
3. zscore key element // 返回element元素的分数 (o(1))
4. zincrby key score element // 增加或减伤element的分数 (score可以是负值 o(1))
5. zcard key // 返回key集合的总数
6. zrange key start end [withscores] // 返回指定索引范围内的升序元素[分值] (o(log(n) + m))
Zset 的其他api
1. zrangebyscore key minScore maxScore [withscores] // 返回指定分数范围内的升序元素[分值] ()
2. zcount key minScore maxScore // 返回指定分数范围内的个数
3. zremrangebyrank key start end // 删除指定排名内的升序元素
4. zrevrank / zrevrange / zrevrangebyscore / zinterstore / zunionstore