Redis常用数据结构和操作
生活随笔
收集整理的這篇文章主要介紹了
Redis常用数据结构和操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.String 存入字符類型Set name luowen 設置name = luowen 存儲Get name 獲取設置好的name的值Setnx name luowen 設置name鍵值為luowen 如果存在,則返回0 不存在返回1Mset name luowen age 23 salary 233333 設置多個鍵值對 一塊存錯 全成功,全失敗Msetnx name maomao age 23 hoby basketball 如果設置多個鍵值對中有存在返回失敗Mget name age salary 獲取多個鍵的值Getset name maomao 獲取name的值,并設置新的值為maomaoSetrange name 3 maomao 將鍵name 3字符和面的進行替換 結果為luomaomaoGetrange name 3 6 獲取鍵name的值 結果為luomaomaoAppend name .com 給鍵nane追加.com 結果為luowen.com Incr age 設置每個值自增 返回結果為24Incrby age 6 給name加上6 如果是負數則鍵Decr 與incr相反Decrby 與decrby相反Strlen 返回鍵對應的值得字符長度2.Hash 方便存對象 鍵值對 Hset user:001 name luowen 設置哈表名字user 表里面的001 的name 設置為 luowenHsetnx user name maomao 設置哈希表名字中的name 存在,設置不成功Hget user:001 name 獲取hash表的user的001的值Hmset user:003 name maomao age 23 批量設置Hmget user:003 name age 批量獲取user:003的值Hincrby user:003 age 3 給hash表的age值加上3Hexists user:003 name 判斷hash表中式否存在name的鍵Hlen user:003 返回hash表的所有的字段的數目Hkeys user:003 返回hash表的所有字段Hvals user:003 返回hash表中所有的值Hgetall user:003 返回所有的字段和值Hdel user:003 name 對hash的name的值和鍵刪除3.list 鏈表 (雙向鏈表)1.棧:先進后出 隊列:先進先出2.lpush 從頭壓入Lpush list1 “world” lpush list1 ‘hello”Lrange list1 0 -1 把鏈表中的數據從0到尾全部取出Wordhello3 rpush 從尾部壓入rpush list2 “world” rpush list2 “luowen” lrange list2 0 -1worldluowen4.linsert 插入出入數據Rpush list3 luowenRpush list3 maomaoLrange list3 0 -1LuowenMaomaoLinsert list3 before maomao loveLrange list3 0 -1LuowenLovemaomaoLinsert list3 after luowen loveLrange list3 0 -1LuowenLoveMaomao5 lset 給某個元素復制Rpush list5 luowenRpush list5 maomaoLset list5 0 “deom”Demomaomao 6 lrem 刪除list表中的數據Rpush list6 luowenRpush list6 luowen1Rpush list6 luowen2Rpush list6 luowen3Rpush list6 luowen4Lrem list6 1 “luowen”刪除list6 中值為luowen的值7.ltrim Lpush list7 luowen1Lpush list7 luowen2Lpush list7 luowen3Lpush list7 luowen4Lpush list7 luowen5Ltrim list7 1 2 (1 2 為保留的范圍)Lpush list7 luowen2Lpush list7 luowen38 lpop 從鏈表的頭部彈出一個元素Lpush list8 luowen1Lpush list8 luowen2Lpush list8 luowen3Lpop list8 Lpush list8 luowen2Lpush list8 luowen39 rpop 從鏈表的尾部彈出一個元素Lpush list8 luowen1Lpush list8 luowen2Lpush list8 luowen3rpop list8 Lpush list8 luowen1Lpush list8 luowen210 rpoplpush 從一個鏈表彈出,在從頭部壓入到另一個鏈表List demo1 Demo1ADemo1BDemo1CList demo2Demo2ADemo2BDemo2CRpoplpush demo1 demo2List demo1 Demo1ADemo1BList demo2Demo1CDemo2ADemo2BDemo2C11 lindex 返回一個list小標的索引值List11onetwolindex list11 1(list小標)twolindex list11 0one12 llen 返回這個鏈表的元素的長度
4.set無序集合 1 sadd 向集合中插入一條數據Sadd myset1 luowen2 srem 刪除集合中的一個元素Srem myset1 luowen3 smembers 查看集合中的元素Smembers myset14 spop 從集合隨機彈出一個元素,返回鍵值5 sdiff 兩個集合的差集 返回兩個集合不一樣的,根據第一個集合為標準Setdemo1Onetwosetdemo2one three sdiff setdemo1 setdemo2two(與setdemo2不一樣)sdiff setdemo2 setdeo1three(與setdemo1 不一樣)6 sdiffstroe 將兩個差集存儲到另外一個集合Sdiffstore setdemo1 setdemo2 setdemo3將setdemo1 setdemo2 的差集放到 setdemo3中7 sinter 將兩個集合的交集8 sinterstore 將兩個集合的交集存儲到另外一個集合中9 sunion 將兩個集合并集10 sunionstore 將兩個集合并集并存儲到另外一個集合中11 smove 將以個集合中的元素移動到另外一個集合中Eg smove myset1 mysetA two mysetB 集合中的two元素移動到mysetB中12 scard 查看集合中元素的個數Scard myset1查看myset12元素的個數13 sismember 判斷是否是集合中的元素Sismember myset13 luowen 判斷luowen是否在myset13中的元素14 srandmember myset14 隨機取出myset1 中的元素15 zadd 添加到有序集合中區Zadd myzsent 1 luowen1Zadd myzsent 2 luowen2Zadd myzsent 3 luowen3Zadd myzsent 4 luowen4Zrange myzsent 0 -1 withscores16 zrem 刪除有序集合中的元素Zrem myzsent luowen1 刪除myzsent集合中的luowen117 zincrby myzsent luowen1 3將myzsent luown1的序號更改為4如果沒有,就創建他18 zrank 找到myzsent 對應值得索引19 zrevrank 反過來去索引20 zrangebyscore 返回集合中指定的元素Zrangebyscore mysetdeom 2 5 withscores返回mysetdemo中2-5中的元素21 zcount 返回指定空間的數量Zcount myset 2 4 返回2 4中的元素個數22 zcard 返回集合中所有元素的個數23 zremrangbyrank 刪除集合中指定區間的元素,并將索引進行排序24 zremrangbyscore 刪除集合中指定元素,按循序進行排序5 Redis常用命令Key-values1 keys * 匹配鍵所有的鍵. 模糊匹配 keys my* 取出所有已my開頭的鍵2 exists 判斷是否鍵 exists name判斷是否有name這個鍵是否存在3 del 刪除鍵 del name 刪除name的鍵4 expire 設置過期時間 expire key time 5 ttl key 查看鍵的過期時間6 select database 選擇數據庫7 move key dababase1 講key移動dao database1中的數據庫中8 persist 取消鍵的過期時間 9 randomkey 隨機返回一個鍵的值10 rename 重命名一個鍵11 type key 判斷key的數據類型Server1 ping ping我們的主機能否鏈接 鏈接是否存活2 echo 命令 echo demo直接輸出3 select 選擇數據庫 select 0-16個數據庫4 quit exit 退出鏈接5 dbsize 返回數據庫的鍵的個數6 info 返回服務器相關信息7 config get 返回服務配置信息8 flush db 清空數據庫9 flushall 刪除所有數據庫中所有的鍵
6 Redis 高級應用1 在配置文件里面設置 requirepass password2 進入后 auth 密碼 進行授權 方法二: 登入或在后面加上 –a 加上密碼3 主從復制:One: 一個master服務器可以擁有多個slaveTwo: 一個salve可以有多個master 并且還可以與其他的salve相連接配置salve打開salveof注釋 并添加主機的ip以及端口主機加了密碼的時候還需要配置masterauth 密碼4 redis 的事務處理輸入:multi 打開一個上下文Set age 10Set age 144-----------------------------------------------------------上面的全部放入隊列最后執行Exec 最后age為144回滾Discard Watch 監視鍵的命令5 Redis的持久化方式一: snapshotting (快照)將內存的數據寫入到文件中 save 500 32 500秒內有32個鍵發生變化則發起快照到文件中方式二: append only file 將沒次寫修改的命令保存到文件中配置:打開append onlyAppendfsync yesAppendfsync always 每次都寫入Appendfsync everysec 每個一秒寫入Appendfsync no 不寫入6 發布和訂閱消息訂閱:Subscribe tv1 tv2 訂閱了兩個頻道發布:Publish tv1 luweo注:publish tv1的信息 訂閱的信息都可以收到7 虛擬內存方式一:暫時把不使用的數據放到硬盤里面方式二:可以把數據分割到其他的slave數據服務器中
6 Redis 高級應用1 在配置文件里面設置 requirepass password2 進入后 auth 密碼 進行授權 方法二: 登入或在后面加上 –a 加上密碼3 主從復制:One: 一個master服務器可以擁有多個slaveTwo: 一個salve可以有多個master 并且還可以與其他的salve相連接配置salve打開salveof注釋 并添加主機的ip以及端口主機加了密碼的時候還需要配置masterauth 密碼4 redis 的事務處理輸入:multi 打開一個上下文Set age 10Set age 144-----------------------------------------------------------上面的全部放入隊列最后執行Exec 最后age為144回滾Discard Watch 監視鍵的命令5 Redis的持久化方式一: snapshotting (快照)將內存的數據寫入到文件中 save 500 32 500秒內有32個鍵發生變化則發起快照到文件中方式二: append only file 將沒次寫修改的命令保存到文件中配置:打開append onlyAppendfsync yesAppendfsync always 每次都寫入Appendfsync everysec 每個一秒寫入Appendfsync no 不寫入6 發布和訂閱消息訂閱:Subscribe tv1 tv2 訂閱了兩個頻道發布:Publish tv1 luweo注:publish tv1的信息 訂閱的信息都可以收到7 虛擬內存方式一:暫時把不使用的數據放到硬盤里面方式二:可以把數據分割到其他的slave數據服務器中
轉載于:https://www.cnblogs.com/whoamme/p/3532129.html
總結
以上是生活随笔為你收集整理的Redis常用数据结构和操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学习是一个漫长不能松懈的过程
- 下一篇: 共享一个调用微信公众平台接口的客户端类库