redis学习笔记(2) - list、set、zset的使用

@(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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值