redis常用命令-个人版本

本文介绍了Redis缓存中的三种异常情况:雪崩、穿透和击穿。缓存雪崩是指大量缓存在同一时刻过期,导致请求直接击中数据库。缓存穿透是查询数据库中不存在的数据,可能导致数据库被无效请求淹没。缓存击穿则是热点Key在失效时,高并发请求会直接穿透缓存,对数据库造成压力。
摘要由CSDN通过智能技术生成
//以下是一些常用命令和个人看法,如有偏颇,请不吝赐教.

关于key值
	del  key
	rename key newname
	exists key  
	type key 
	keys name*  //获取符合条件的key

	expire key s  设置过期时间,单位:秒 
	ttl key 查看过期时间  (-1 永不过期)
	persist key 持久化  (移除过期时间)


字符串操作
	set  key val 
	get key 
	incr key
	decr key 
	incrby key val
	decrby key val
	setnx key val 当可以不存在时赋值 (返回0赋值失败,可以存在)




列表操作:
	个人认为列表就是php的普通一纬索引数组 [1,2,3,4],注意列表不支持查询,一般用于队列
	lpush key value1 [value]   在数组的左侧插入数据,返回数组长度
	rpush key value1 [value]   在数组的右侧插入数据,返回数组长度
	lrange key  start end    查看数组 
	lpop key
	rpop key
	llen key  获取列表长度
	lindex key index 
	lset key index val 
	LINSERT key BEFORE|AFTER pivot value 
	//元素前或者后插入元素。当指定元素不存在于列表中时,不执行任何操作。当列表不存在时,被视为空列表,不执行任何操作。如果 key 不是列表类型,返回一个错误。

	lrem key count value  
		Redis Lrem 根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素。
		COUNT 的值可以是以下几种:
		count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
		count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
		count = 0 : 移除表中所有与 VALUE 相等的值


哈希操作:
哈希中只能查键是否存在 不能查值是否存在(可以查键)
	hmset/hset key  field1 name1 field2 name2 
	hget key field1   //获取键的值
	hmget key field1 field2 //根据键名获取多个键值
	hgetall key 
	hexists key field //查看键是否存在
	hincrby key field vale 
	hincrbyfloat key field value 
	hsetnx key filed value  //键不存在时赋值
	hkeys key  //获取所有的键
	hvals key //获取所有的值
	hlen key  //获取长度


集合
成员唯一,相当于php索引数组(抛弃了键值),个人还没遇到使用场景,侧重点应该在redis提供的运算上(交集,并集,差集)
	sadd key member1 membere2 //
	srem key member2 member2 //删除集合中的元素
	sismember key member //判断集合中是否存在某个值
	smembers key //返回集合中的所有成员
	smove source destination member //把成员从source移动值destination
	spop key //删除并返回集合中的一个随机元素
	srandmember key [count] //返回集合中的元素  
	scard key  //成员总数  (数组长度)

	sdiff key1 [key2,key3]  取集合的差级
	sdiffstore destination key1 [key2]  用destination存数组的差集
	sinter key1 [key2,key3]  取集合的交级
	sinterstore destination key1 [key2]  用destination存数组的交集
	sunion key1 [key2,key3]  取集合的并级
	sunionstore destination key1 [key2]  用destination存数组的并集

有序集合
成员唯一,但是权重可以重复,一般用于做排行榜 需注意一点,有序集合有‘键’(从0开始),权重(分数),成员(value).默认排序方式从小到大.公式内的start,stop,min,max如果是数字则是包含,如果是成员则支持[(数学写法

	zadd key score1 member1 score2 member2
	//获取数量
	zcard key //返回集合成员数
	zcount key score_min score_max  //返回成绩区[min,max]成员数 (不支持[,(写法)
	zlexcount key [member_min member_max  //返回成员区间内的 成员数量

	//返回分数或者排名
	zscore key member //返回成员的分数
	zrank key member //返回会员的索引,注意是索引!!  也就是排名-1 从小到大
	zrevrank key member //返回从大到小的会员排名
	zincrby key increment member  //对某个会员加权

	//返回成员列表
	zrange key start stop [withscores] //通过索引返回成员列表,注意是索引! 加withscores返回值加上权重
	zrevrange key start stop [withscores] //通过索引返回成员列表,注意是索引! 加withscores返回值加上权重(从大到小)
	zrangbylex key [member_min [member_max [withscores] [limit 1,1] //返回成员区间内的所有成员
	zrevrangebyscore key score_min score_max [withscores] // 返回权重区间[score_min,score_max]的会员

	//移除会员
	zrem key member [member2] //移除会员
	zremrangebyscore key score_min score_max // 移除有序集合内权重在[score_min,score_max]的成员
	zremrangebyrank key index_start index_stop   //移除排名区间内[index_start,index_stop]的 
	zremrangebylex key min max //移除有序集合中给定的字典区间的所有成员   字典=会员

缓存雪崩,穿透,击穿

缓存雪崩:是指在某一个时间段,缓存集中过期失效。

缓存穿透:是指查询一个数据库一定不存在的数据。

缓存击穿,是指一个key非常热点,在不停的扛着大并发,大并发集中对这一个点进行访问,当这个key在失效的瞬间,持续的大并发就穿破缓存,直接请求数据库,就像在一个屏障上凿开了一个洞。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值