Redis 学习相关命令

类型
string
	key 1024 字节
	val 512  兆

	命令:
		set 	k 	v
		getset 	k 	v 先获取再设置值
		del		k
		incr	k 	  不存在k 会先创建k 再默认0递增1为  1
		decr 	k 	  不存在k 会先创建k 再默认0递减1为 -1
		incrby  k       v 在k的v基础上增加v
		decrby  k       v 在k的v基础上减少v
		append  k       v 在k的v后面追加一个v 返回v的长度





hash
	每个hash可以存储 4294967295 个键值对

	命令
		hset 	key	  k   v
		hmset 	key   k   v   v   ...	设置多个属性值
		hmget 	key   k   k   		获取多个属性值
		hgetall key 		  	全部获取到
		hdel 	key   k   v   		删除单个属性值
		del     key           		可以删除整个集合
		hincrby key   k   v             给v在v基础递增v
		hexists key   k                 检测是否存在属性值 1/0
		hlen 	key 		        长度
		hkeys   key  		        返回key以下所有的 k 
		hvals   key                     返回key以下所有的 v





list
	命令
		lpush 	key   v   v    v   ...  从左添加
		lpushx  key   v                 从左头部插入一个元素 如果key不存在则插入失败(类似插队)
		lpop    key			从左弹出
		rpush   key   v   v    v   ...  从右添加
		rpushx  key   v                 从右头部插入一个元素 如果key不存在则插入失败(类似插队)
		rpop    key			从右弹出
		lrange  key   start(0) end      (-1最后一个|-2倒数第二个...)  查看列表范围
		llen    key			查看元素个数
		lrem    key   count    v        依次移除 count 个 v
		lrem    key   -count   v        依次移除 count 个 v
		lrem    key   0    v            依次移除 所有的 v
		lset    key   count    v        第count(角标)个位置插入v	 (插队)
		linsert key   before   vv   v   依次且只在的第一个vv之前插入v (插队)
		linsert key   after    vv   v   依次且只在的第一个vv之后插入v (插队)
		rpoplpush key1  key2 	        依次将 key1 右边的第一个弹出 然后将弹出的元素插入到 key2 的左边

			tips:由于业务场景中在出现业务高峰的时候运用队列处理时 弹出的元素没有处理成功 这样就造成了弹出元素的业务丢失 为此为了解决该类问题 可以用 rpoplpush 来解决这个问题(举例:listA 为主业务队列, listB 为副业务队列 当listA被消费者弹出一个元素时 随即将元素添加到listB队列 等待业务处理完成时 即可将listB的元素删除 相当于做了一个备份的操作)






set 
	set可包含的最大元素数量是 4294967295
	可以看做没有排序的集合 和 list 一样(set中不允许出现重复的元素 如果多次出现 只会保留一份内容)
	命令
		sadd 	    key   v    v    v  ...  添加元素
		srem 	    key   v    v    v  ...  删除元素
		smembers    key            	    查看元素
		sismember   key   v  		    查看 v 是否存在 (1/0)
		sdiff       key1  key2              返回 key1 与 key2 的差集
		sinter      key1  key2              返回 key1 与 key2 的交集
		sunion      key1  key2              返回 key1 与 key2 的并集(重复的会去掉)
		scard       key                     返回 key 下的数量
		srandmember key                     返回 key 中随机的一个元素
		sdiffstore  key1  key2  key3        将 key2 与 key3 的差集存储到 key1
		sinterstore key1  key2  key3        将 key2 与 key3 的交集存储到 key1
		sunionstore key1  key2  key3        将 key2 与 key3 的并集存储到 key1

			tips:应用场景例如两件商品同时购买过的用户有哪些 网站访问的ip有多少个...






sorted-set
	sorted-set 与 set 之间的区别:都会有一个分数与之关联 redis正是通过这个分数为集合从小到大的排序 虽然值是唯一的 但是分数是可以重复的
	命令
		zadd		        key   num   v   num   v   ...   		给key键添加 num分数 到v(可以是多个 如果num重复 成功返回0 会修改为本次的num)    
		zscore      		key   v 					返回key下 v 的分数
		zcard       		key    						返回key下的长度
		zrem       	        key   v     v 				        删除key下的v
		zrange      		key   0     -1     		                返回key下第一个到最后一个的v
		zrange      		key   0     -1    withscores    		返回key下第一个到最后一个的v与v对应的分数
		zrevrange   		key   0     -1    withscores    		以分数从大到小返回key的v 与 v对应的分数
		zremrangebyrank 	key   start end 		                以分数从大到小 有序的 从 start 到 end 之间删除
		zremrangebyscore 	key   startnum endnum                           删除key下分数  从 startnum 到 endnum 之间的 v
		zrangebyscore           key   startnum endnum limit start end           以分数从大到小 返回startnum 到 endnum 分数区间 的第 start 到 end结束
		zincrby    	        key   num   v                                   给 key 的 v 在 v 的基础上增加 num 
		zcount                  key   startnum endnum                           返回 key 下分数在 startnum 到 endnum 之间的个数


			tips:主要的应用场景在于游戏的排名、微博的热点话题、游戏的积分... ... 




 

你可能感兴趣的:(redis)