Redis-1.0>>>>>>基礎操作

Redis的常用操作命令

    前面學習在docker中快速拉取redis並運行使用,今天學習redis的基本操作命令。

  • redis是完全開源免費的,遵守BSD協議,是一個高性能的key-value數據庫.
  • redis數據類型:string(字符串)、list(鏈表)、hash(哈希)、set集合、 zsort(有序集合)
  • redis默認有16個數據庫,從0開始,15結束,可以通過配置文件修改
  • redis能讀的速度是110000次/s,寫的速度是81000次/s

一、Redis的數據庫操作

如果存取中文顯示時是亂碼,解決辦法是啓動客戶端時加入 --raw(redis-cli --raw)。
操作命令:

命令 參數 說明
config set requirepass 123 設置登陸密碼爲123
config set requirepass ‘’ 清空登陸密碼
config get requirpass 獲取登陸密碼
auth 123 驗證登陸密碼
ping 返回pong,連接成功
quit 退出客戶端
exit 退出客戶端
flushdb 清除當前數據庫
flushall 清除所有數據庫
keys * 模糊查詢key,*任意通配符
keys 模糊查詢key,?通配單個字符
keys [] 模糊查詢key,?通配某個字符
randomkey 隨機獲取一個key
exists key 查詢是否存在該key
type key 查看key的類型
rename oldkey newkey 重命名key,如果new key存在,則原值會被覆蓋
del key1 key2 刪除key,1個和多個,返回刪除key的數量
move key 2 將key移動到數據庫2
expire key 2000 設置key的過期時間,單位秒
pexpire key 2 設置key的過期時間,單位毫秒
ttl key 查詢key的生命週期,返回秒,不存在的key、已經過期的key返回-2;永久有效的key,返回-1。
pttl key 查詢key的生命週期,返回毫秒,不存在的key、已經過期的key返回-2;永久有效的key,返回-1。
persist key 將指定的key設置爲永久有效

二、數據類型及操作

1、String(字符串):
命令 參數 說明
set key value 創建key和對應的value
set key value ex 60 創建key和value,並設置過期時間爲60秒
set key value px 60 創建key和value,並設置過期時間爲60毫秒
setex key 60 value 創建key和value,並設置過期時間爲60毫秒
set key value nx key不存在時,創建key和value
set key value xx key存在時,創建key和value
setnx key value key不存在時,創建key和value(沒有setxx命令)
get key 獲取key的值
mset key1 value1 key2 value2 同時創建多個鍵值
getset key value 賦新的值並獲取當前值
setrange key 1 value 使用value覆蓋key的值,從第1個開始
getrange 2 3 範圍獲取字符串,開始2,結束3,下標左數從0開始,右數從-1開始
incr key key的值+1,值必須是數字才能加
incrby key 20 將key的值增加20
incrbyfloat key 2.3 將key的值增加2.3(浮點數)
decr key key的值-1
decrby key 10 將key的值減10
decrbyfloat key 2.5 將key的值減2.5(浮點數)
append key value 字符串拼接,在結尾處追加value
2、list(鏈表):

從左側插入數據:lpush key vaule1 value2
從右側插入數據:rpush key vaule1 value2
只列出左側命令,右側l替換成r即可:

命令 參數 說明
lpush key vaule1 value2 向鏈表左邊添加多條數據,返回其大小
lpushx key value 同上,當key存在時才添加
lrange key start end 查看list在[start ,end]之間的數據,取出全部數據:lrange key 0 -1
llen key 查看list的大小
lpop key 返回並刪除鏈表頭元素
rpop key 返回並刪除鏈表尾部元素
lindex key index 返回索引爲index的值
linsert key after或before v1 v2 在v1之後或之前添加值爲v2的元素
lset key index value 設置index位的值
blpop key timeout 阻塞的彈出第一個元素且返回該元素值。在超時時間(秒)內阻塞直到有值
brpoplpush 從列表中彈出一個值,將彈出的元素插入到另外一個列表中並返回它; 如果列表沒有元素會阻塞列表直到等待超時或發現可彈出元素爲止
ltrim key start end 只保留在[start,end]區間的數,其餘的刪除,下標 0 表示列表的第一個元素,-1 表示列表的最後一個元素
lrem key count value 刪除count個與value相同的值,
  • count > 0 : 從表頭開始向表尾搜索,移除與 value相等的元素,數量爲 count。
  • count < 0 : 從表尾開始向表頭搜索,移除與 value相等的元素,數量爲 count的絕對值。
  • count = 0 : 移除表中所有與 value相等的值。
3、hash(哈希):
	hash是一個string類型的field和value的映射表,hash特別適合用於**存儲對象**。
命令 參數 說明
hset user name tom 創建key爲user ,域爲name 值爲tom的數據
hmset key f1 v1 f2 v2 同時設置多個字段和值
hget user name 獲取key爲user,field爲name的值
hmget key f1 f2…fn 獲取多個值
hsetnx key field value 當鍵不存在時才設置值
hgetall user 查看該user下所有的field和value
hincrby user age 2 給指定的值設置增量(也可爲負數,即減量)
hincrbyfloat user age 2.3 給指定的值設置浮點數增量(也可爲負數,即浮點數減量)
hkeys user 獲取user的所有的field
hvals user 獲取user的所有的值
hlen key 獲取哈希字段的數量
4、set(集合):

集合是無序的字符串集合,集合中的值是唯一的、無序的。

命令 參數 說明
sadd key m1 m2 mn 向一個集合添加多個成員
smembers key 返回集合的所有成員
sdiff key1 key2 keyn 返回多個集合的差集
sunion key1 key2 keyn 返回多個集合的並集
sinter key1 key2 keyn 返回多個集合的交集
sidffstore newset key1 key2 keyn 將多個集合的差集(交急sinterstore,並集是sunionstore)存儲到另一個集合(這裏是newset)
sismember key member 判斷值是否是該集合的成員,是返回1,不是返回0
smove key1 key2 member 將一個集合的數據移動到另一個集合
srandmember key count 隨機返回指定數量的成員
scard key 獲取集合的大小
srem key member1 member2 移除一個或多個集合成員
spop key count 隨機返回並刪除指定數量的成員
5、sort set:

有序集合由唯一的,不重複的字符串元素組成。有序集合中的每個元素都關聯了一個分數(分數值可以是整數值或雙精度浮點數)。可以把有序看成hash和集合的混合體,分數即爲hash的key。有序集合的成員是唯一的,但分數卻可以重複。有序集合中的元素是按序存儲的,不是請求時才排序的。

命令 參數 說明
zadd key s1 v1 s2 v2 sn vn 向有序集合添加多個數據和分數
zrange key start end [withscores] 查詢集合在區間[start,end]的數據,withscores顯示分數,默認升序(降序zrevrange)
zcard key 查看zset的成員數
zcount key min max 返回集合的分數在區間[min,max]的成員數+inf表示正無窮,-inf表示負無窮
zincrby key num value 對zset對應的value的分數進行增加(增量值爲num)
zinterstore newzset keynums key1 key2 ··· 取keynums個zset取交集(並集zunionstore)存儲到一個新的有序集合(這裏指newzset)
zrangebylex key min max 返回指定字典區間的值
zrangebyscore key min max 通過分數返回有序集合指定區間內的成員
zrank key member 返回指定值的索引
zrem key member1 member2 刪除指定成員
zremrangebylex key min max 通過字典區間刪除
zremrangebyrank start end 通過索引區間刪除
zremrangebyscore key min max 通過分數區間刪除
zlexcount key min max 計算有序集合中指定字典區間內成員數量。
  • 成員名稱前需要加 [ 符號作爲開頭, [ 符號與成員之間不能有空格(除了[ 還有(和數學上的區間一個道理)
  • 可以使用 - 和 + 表示得分最小值和最大值
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章