window下redis的基本操作命令
開啟服務端命令 :redis-server.exe redis.windows.conf
開啟客戶端命令:redis-cli.exe -h 127.0.0.1(目標IP) -p 6379(預設)
一、查詢相應的key
(1)redis允許模糊查詢key 有3個萬用字元 *、?、[]
(2)randomkey:返回隨機key
(3)type key:返回key儲存的型別
(4)exists key:判斷某個key是否存在
(5)del key:刪除key
(6)rename key newkey:改名
(7)renamenx key newkey:如果newkey不存在則修改成功
(8)move key 1:將key移動到1資料庫
(9)ttl key:查詢key的生命週期(秒)
(10)expire key 整數值:設定key的生命週期以秒為單位
(11)pexpire key 整數值:設定key的生命週期以毫秒為單位
(12)pttl key:查詢key 的生命週期(毫秒)
(13)perisist key:把指定key設定為永久有效
二、字串型別的操作
(1)set key value [ex 秒數] [px 毫秒數] [nx/xx]
如果ex和px同時寫,則以後面的有效期為準
nx:如果key不存在則建立
xx:如果key存在則修改其值
(2)get key:取值
(3)mset key1 value1 key2 value2 一次設定多個值
(4)mget key1 key2 :一次獲取多個值
(5)setrange key offset value:把字串的offset偏移位元組改成value
如果偏移量 > 字串長度,該字元自動補0x00
(6)append key value :把value追加到key 的原值上
(7)getrange key start stop:獲取字串中[start, stop]範圍的值
對於字串的下標,左數從0開始,右數從-1開始
注意:當start>length,則返回空字串
當stop>=length,則擷取至字串尾
如果start所處位置在stop右邊,則返回空字串
(8)getset key nrevalue:獲取並返回舊值,在設定新值
(9)incr key:自增,返回新值,如果incr一個不是int的value則返回錯誤,incr一個不存在的key,則設定key為1
(10)incrby key 2:跳2自增
(11)incrbyfloat by 0.7: 自增浮點數
(12)setbit key offset value:設定offset對應二進位制上的值,返回該位上的舊值
注意:如果offset過大,則會在中間填充0
offset最大到多少
2^32-1,即可推出最大的字串為512M
(13)bitop operation destkey key1 [key2..] 對key1 key2做opecation並將結果儲存在destkey上
opecation可以是AND OR NOT XOR
(14)strlen key:取指定key的value值的長度
(15)setex key time value:設定key對應的值value,並設定有效期為time秒
三、連結串列操作
Redis的list型別其實就是一個每個子元素都是string型別的雙向連結串列,連結串列的最大長度是2^32。list既可以用做棧,也可以用做佇列。
list的pop操作還有阻塞版本,主要是為了避免輪詢
(1)lpush key value:把值插入到連結串列頭部
(2)rpush key value:把值插入到連結串列尾部
(3)lpop key :返回並刪除連結串列頭部元素
(4)rpop key: 返回並刪除連結串列尾部元素
(5)lrange key start stop:返回連結串列中[start, stop]中的元素
(6)lrem key count value:從連結串列中刪除value值,刪除count的絕對值個value後結束
count > 0 從表頭刪除 count < 0 從表尾刪除 count=0 全部刪除
(7)ltrim key start stop:剪下key對應的連結,切[start, stop]一段並把改制重新賦給key
(8)lindex key index:返回index索引上的值
(9)llen key:計算連結串列的元素個數
(10)linsert key after|before search value:在key 連結串列中尋找search,並在search值之前|之後插入value
(11)rpoplpush source dest:把source 的末尾拿出,放到dest頭部,並返回單元值
應用場景: task + bak 雙鏈表完成安全佇列
業務邏輯: rpoplpush task bak
接收返回值並做業務處理
如果成功則rpop bak清除任務,如果不成功,下次從bak表取任務
(12)brpop,blpop key timeout:等待彈出key的尾/頭元素
timeout為等待超時時間,如果timeout為0則一直等待下去
應用場景:長輪詢ajax,線上聊天時能用到