Redis学习笔记

一、Redis 命令操作

1.String

 	1.赋值									 (set <key> value)
 	2.取值						   			 (get <key>)
	3.取当前key值并且更改key的value	     	 (getset <key> value)
	4.数字递增							     (incr <key>)
	5.数字递减							     (decr <key>)
	6.递增指定数					  		     (incrby <key> num)
	7.递减指定数						 		 (decrby <key> num)
	8.指定该key在Redis中存活时间		   	 	 (setex <key> seconds value)
	9.key存在,无操作,key不存在,执行set  	 (setnx <key> value)
	10.向尾部追加					 	     (append <key> value)
	11.获取字符串长度						 (strlen <key>)
	12.设置多个键值				       		 (mset <key> value [key value...])
	13.获取多个键值			       		 	 (mget <key> [key...])
	14.批处理setnx(注意回滚)	    	     (msetnx <key> value [key value ...]

2.List

	向列表左边添加元素							(lpush <key> value [value])
	向列表右边添加元素							(rpush <key> value [value])
	查看当前列表元素					   			(lrange <key> start stop)
	给存在的key左边添加元素,key不存在则无操作		(lpushx <key> value)
	给存在的key右边添加元素,key不存在则无操作		(rpushx <key> value)
	从列表左边弹出元素							(lpop <key>)
	从列表右边弹出元素							(rpop <key>)
	获取列表中元素个数							(llen <key>)
	删除列表指定元素								(lrem <key> count value)
	注:在指定Key关联的链表中,删除前count个值等于value的元素。
	如果count大于0,从头向尾遍历并删除,如果count小于0,则从尾向头遍历并删除。
	如果count等于0,则删除链表中所有等于value的元素。如果指定的Key不存在,则直接返回0。
	指定元素的索引值								(lset <key> index value)
	保留指定片段						 			(ltrim <key> key start stop)
	向列表中插入元素								(linsert key befter|after pivot value)
	将元素从一个列表转移到另一个列表 				(rpoplpush source destination)

3.Hash

	field ()			increment (增加)
	赋值:										(hset <key> field value)
    	hset key f1 "1"
	取值:										(hget <key> field)
		hget key f1
	判断字段是否存在:							(hexists <key> field)
	获取字段数量:								 (hlen <key>)
	删除字段:									(hdel <key> field [field])
	当前字段不存在时赋值:					    (hsetnx <key> field value)
	增加指定字段的数值:							(hincrby <key> field increment)
	获取key中所有字段和值:						(hgetall <key>)
	只获取字段名:								(hkeys <key>)
	设置多个字段的值:							(hmset <key> field value [field value...])	
	获取多个字段的值:							(hmget <key> field [field...]

4.Set

	member (成员)					destination (目的点)
	增加元素:									(sadd <key> member [member...])
	查看当前key中所有元素:						 (smembers <key>)
	获取当前key中元素个数:						(scard <key>)
	判断元素是否在集合中:						(sismember <key> menber)
	随机从集合中弹出一个元素:					(spop <key>)
	随机获得集合中的元素:						(srandmember <key> [count])	
	删除指定元素:								(srem <key> member [member...])
	将元素从一个集合转到另一个集合:				(smove source destination member)
		smove set set1 0		  (将0这个元素从set中移到set1中)
	集合间差集运算:								(sdiff <key> [key...])
	集合间交集运算:								(sinter <key> [key...])
	集合间差集运算(集合另存):					(sdiffstore destination <key> [key...])
		sdiffstore set set0 set1  (将set0和set1的差集存入set中)
	集合间交集运算(集合另存):					(sunionstore destination <key> [key...])
		sunionstore set set0 set1 (将set0和set1的交集存入set中)

5.Zset

	增加元素:								(zadd <key> score member [score] [member]...)
	获取某范围元素有序列表:(索引小到大)		(zrange <key> start stop)
	获取某范围内元素有序列表:(索引大到小)	(zrevrange <key> start stop)
	获取集合中元素个数:						(zcard <key>)
	获取指定分数(索引)范围内元素个数:		(zcount <key> min max)
	获取指定分数范围内元素:(分数从小大大)		(zrangebyscore <key> min max)
	获取指定分数范围内元素:(分数从大到小)    (zrevrangebyscore <key> max min)
	获得指定元素分数:					  	(zscore <key> member)
	增加某元素分数:							(zincrby <key> increment member)
	获取元素排名:(分数从小到大)				(zrank <key> member)
	获取元素排名:(分数从大到小)				(zrevrank <key> member)
	删除一个或多个元素:						(zrem <key> member [member...])
	按照排名范围删除元素:					(zremrangebyrank <key> start stop)
	按照分数范围删除元素:					(zremrangebyscore <key> start stop)

二、Redis事务

	multi					开启事务
	watch 					监视事务(监视的对象被改变,事务回滚)
	exec					执行事务
	discard					取消事务

主从

	slaveof 172.18.84.63 6379			成为172.18.81.63的从机
	info replication					查看当前状态
	slaveof no one					    取消所有主从
	--sentinel							开启哨兵监视

  1. 缓存穿透(请求了一个数据库和缓存不存在的数据)
    (数据造假,存在时间较短)
    (网关限制)

  2. 缓存击穿(缓存消失后,大量请求涌入)
    (持久层加上线程锁)

  3. 缓存雪崩(大量缓存击穿)
    (分布式、错峰)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值