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:主要的應用場景在於遊戲的排名、微博的熱點話題、遊戲的積分... ... 




 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章