Redis概述與經常使用指令

Redis使用二-指令

環境:redis-5.0.3,centos605正則表達式

概述

  • Redis是一個高速的nosql內存數據庫,本質是內存中的數據結構存儲系統,存儲形式爲K-V對
  • 鍵(Key)類型爲String字符串,值(Value)支持5種類型:字符串、列表、集合、散列表、有序集合
  • Redis的數據正常操做存取在內存,也支持持久化(如硬盤),經過複製提升讀性能,分片提升寫性能。
  • 讀寫性能很是高,可頻繁讀寫,支持自增自減運算

數據類型及經常使用命令

數據類新

數據類型 存儲 說明
STRING 字符串、整數或者浮點數 最基本的數據類型,能夠包含任意數據類型。
LIST 列表 簡單的字符串列表,遲滯雙端操做
HASH 包含鍵值對的無序散列表 String 類型的無序集合
SET 無序集合 元素無序惟一,哈希表實現
ZSET 有序集合 string類型元素的集合,每一個元素關聯一個double類型的分數,支持排序(sorted set),元素惟一,分數(score)能夠重複

通用命令

一、啓動。默認端口:6379redis

redis-server redis-5.0.3/redis.conf 
redis-cli
127.0.0.1:6379>ping
pong
複製代碼

二、set,建立K-V對,默認爲值類型爲字符串sql

127.0.0.1:6379> set k1 v1
OK
複製代碼

三、get,查詢,沒有返回nil數據庫

127.0.0.1:6379> get k1
"v1"
複製代碼

四、rename ,重命名centos

127.0.0.1:6379> rename k1 k0
OK
127.0.0.1:6379> get k1
(nil)
127.0.0.1:6379> get k0
"v1"
複製代碼

五、del,刪除,返回影響的行數,不會報錯bash

127.0.0.1:6379> del k1
(integer) 1
127.0.0.1:6379> del k1
(integer) 0
複製代碼

六、dump,序列化,不存在數據結構

127.0.0.1:6379> dump k1
"\x00\x02v1\t\x00\x8f\x17\xe1\x92\x9f\xd6\x1a\xea"
127.0.0.1:6379> dump k2
(nil)
複製代碼

七、exists,是否存在,1有0無app

127.0.0.1:6379> exists k1
(integer) 1
127.0.0.1:6379> exists k2
(integer) 0
複製代碼

八、ttl,獲取剩餘活躍時間(time to live),-1無過時時間,-2鍵不存在dom

127.0.0.1:6379> ttl k1
(integer) -1
127.0.0.1:6379> ttl k2
(integer) -2
複製代碼

九、expire,設置剩餘有效時間/s,1爲設置成功,不存在返回0nosql

127.0.0.1:6379> 
127.0.0.1:6379> expire k1 10
(integer) 1
127.0.0.1:6379> ttl k1
(integer) 8
127.0.0.1:6379> ttl k1
(integer) 5
127.0.0.1:6379> ttl k1
(integer) 3
127.0.0.1:6379> ttl k1
(integer) -2
127.0.0.1:6379> expire k2 10
(integer) 0
複製代碼

十、keys,條件查詢,條件爲正則表達式,key *獲取全部鍵

127.0.0.1:6379> set k1 v1
OK
127.0.0.1:6379> set k2 v2
OK
127.0.0.1:6379> set k3 v3
OK
127.0.0.1:6379> set k4 v4
OK
127.0.0.1:6379> set k5 v5
OK
127.0.0.1:6379> keys *
1) "k3"
2) "k4"
3) "k5"
4) "k1"
5) "k2"
複製代碼

十一、randomkey,隨機返回一個鍵

127.0.0.1:6379> randomkey
"k3"
127.0.0.1:6379> randomkey
"k2"
複製代碼

十二、謹慎使用flushdb 清空數據庫,flushall 清空全部數據庫

學習下列命令時,可聯繫對比Java中類似對象類型的操做,便於記憶

String命令

命令 說明 正確返回
strlen key 獲取key的值的長度 鍵長度值
getset key value 給定已存在的 k 設爲 v ,並返回 key 的舊值 原k-v對
mset k1 v1[k2 v2...] 批次設置多個k-v對 ok
mget k1 [k2 k3..] p批量獲取k的值 value值
append k1 v99 追加值 現value的總長度
incrby number 步長,增長,value值爲數字形式 增長後value值
decrby number 減小 j減小後value值

List命令

命令 說明
lpush k1 v1[k2 v2...] 將一個或多個值插入到列表頭部
rpush k1 v1[k2 v2...] 將一個或多個值插入到列表尾部
lrange key start stop 獲取列表指定範圍內的元素
llen key 獲取列表長度
ltrim key start stop 保留列表指定區間內的元素
blpop k1[k2] timeout 移出並獲取列表的第一個元素, 若是無元素會阻塞,直到等待超時或有元素。

Hash命令

命令 說明
hgetall 獲取在哈希表中指定 key 的全部字段和值
hkeys 獲取全部哈希表中的字段
hmset key field1 value1 [field2 value2 ] 同時將多個 field-value (域-值)對設置到哈希表 key 中。
hdel key field1 [field2] 刪除一個或多個哈希表字段
hincrby key field increment 指定字段的整數值加上步長

Set命令

命令 說明
sadd key member1 [member2] 向集合添加一個或多個成員
scard key 獲取key集合的成員數
sismember key member 判斷 member 元素是不是集合 key 的成員
spop key 移除並返回集合中的一個隨機元素
srandmember key [count] 返回集合中一個或多個隨機數
sinter k1[k2] 返回全部集合的交集
sdiff k1[k2] 返回全部集合的差集

Zset命令

命令 說明
zcard key 獲取有序集合的成員數
zadd key score1 member1 [score2 member2] 向有序集合添加一個或多個成員,或者更新已存在成員的分數
zcount key min max 統計集合中分數在min和max之間的元素個數
zscore key member 獲取有序集合中元素對應的分數
zrank 獲取元素在集合中的排名,從小到大,最小的是0
zrevrange key start stop [WITHSCORES] 返回有序集中指定區間內的成員,經過索引,分數從高到底
zscan key cursor [MATCH pattern] [COUNT count] 迭代有序集合中的元素

本文只舉了一些經常使用指令,更多命令請參考redis.io/commands

相關文章
相關標籤/搜索