目錄
-
redis當中對字符串string的操作
CRUD |
功能 |
示例 |
增 |
添加字符串 |
set hello world |
設置多個KV |
mset AA AAA BB BBB CC CCC |
|
設置過期時間 |
setex hello1 5 word1 |
|
key不存在時設置 |
setnx hello2 word22 |
|
查 |
查詢字符串 |
get hello |
查詢部分 |
getrange hello 0 2 |
|
查詢多key |
mget hello hello2 hello3 |
|
查詢長度 |
strlen hello |
|
改 |
修改字符串 |
set hello world2 |
追加 |
append hello 333 |
|
刪 |
刪除字符串 |
del hello |
其他 |
現獲取後設置 |
getset hello word222 |
替換 |
setrange hello22 2 AA |
|
累加1 |
incr number |
|
累加N |
incrby number 10 |
|
累加小數 |
incrbyfloat number 0.5 |
|
減一(只對integer有效) |
decr number |
|
減N |
decrby number 3 |
-
redis當中對hash列表的操作
Redis hash 是一個string類型的field和value的映射表,hash特別適合用於存儲對象。Redis 中每個 hash 可以存儲 232 - 1 鍵值對(40多億)
CRUD |
功能 |
示例 |
增 |
添加一個hash列表 |
hset hkey1 name zhangsan |
不存在時添加 |
hsetnx hkey2 name lisi |
|
一次設置多個值 |
hmset hkey3 name wangwu age 20 sex 1 |
|
查 |
查看數據 |
hget hkey1 name |
查看是否存在 |
hexists hkey3 name |
|
查詢key下所有值 |
hgetall hkey3 |
|
查詢key內所有的字段 |
hkeys hkey3 |
|
查詢key的數據量 |
hlen hkey3 |
|
查詢某一key內多字段的值 |
hmget hkey3 name age |
|
改 |
修改數據 |
hset hkey1 name zhangsan2 |
刪 |
刪除key中的數據 |
hdel hkey3 sex |
其他 |
數據累加(1-N) |
hincrby hkey number1 10 |
累加小數 |
hincrbyfloat hkey number1 0.5 |
-
redis當中對list列表的操作
Redis列表是簡單的字符串列表,按照插入順序排序。你可以添加一個元素到列表的頭部(左邊)或者尾部(右邊)
一個列表最多可以包含 232 - 1 個元素 (4294967295, 每個列表超過40億個元素)。
CRUD |
功能 |
示例 |
增 |
添加一個或多個值到列表 |
lpush lkey1 zhangsan lisi |
將一個值插入到已存在的列表頭部 |
lpushx lkey1 wangwuxxx |
|
向已經存在的列表中插入數據(右邊插入) |
rpush lkey1 AA BB |
|
將一個值插入到已存在的列表尾部 |
rpushx lkey1 ccc |
|
在某一數據之前插入 |
linsert lkey1 before lisi lisibefore |
|
在某一數據之後插入 |
linsert lkey1 after lisi lisiafter |
|
查 |
查詢list中所有數據 (-1表示所有) |
lrange lkey1 0 -1 |
通過索引查詢數據 |
lindex lkey1 0 |
|
查詢列表長度 |
llen lkey1 |
|
改 |
通過索引修改數據 |
lset lkey1 5 eee |
刪 |
數據修剪(保留) |
ltrim lkey1 4 6 |
刪除指定key數據 |
del lkey1 |
|
其他 |
移出並獲取列表的第一個元素 |
lpop lkey1 |
移出並獲取列表的最後一個元素 |
rpop lkey1 |
|
移除列表的最後一個元素,並將該元素添加到另一個列表並返回 |
rpoplpush lkey1 lkey2 |
-
redis操作set集合
Redis 的 Set 是 String 類型的無序集合。集合成員是唯一的,這就意味着集合中不能出現重複的數據。
Redis 中集合是通過哈希表實現的,所以添加,刪除,查找的複雜度都是 O(1)。
· 集合中最大的成員數爲 232 - 1 (4294967295, 每個集合可存儲40多億個成員)。
CRUD |
功能 |
示例 |
增 |
向集合添加一個或多個數據 |
sadd skey1 zhangsan lisi sadd skey2 wangwu lisi |
查 |
查詢集合所有數據 |
smembers skey1 |
查詢集合內數據總量 |
scard skey1 |
|
查詢兩個集合的差集 |
sdiff skey1 skey2 |
|
查詢差值並將結果寫入新集合 |
sdiffstore skey3 skey1 skey2 |
|
查詢兩個集合交集 |
sinter skey1 skey2 |
|
查詢兩個集合交集結果寫入新集合 |
sinterstore skey4 skey1 skey2 |
|
查詢某一數據是否包含在集合中 |
sismember skey1 zhangsan |
|
返回集合內隨機的N個數據 |
srandmember skey2 2 |
|
查詢並集 |
sunion skey1 skey2 |
|
查詢並集結果寫入新集合 |
sunionstore skeyn skey1 skey2 |
|
改 |
將數據在一個集合移動到另一個集合 |
smove skey1 skey2 zhangsan |
刪 |
移除結果中的某個數據 |
srem skey2 zhangsan |
-
redis中對key的操作
CRUD |
功能 |
示例 |
查 |
查詢所有符合模式的key |
Keys * |
查詢剩餘過期時間(毫秒) |
pttl hkey1 |
|
查詢剩餘過期時間(秒) |
ttl hkey1 |
|
在數據庫中隨機回返一個key |
randomkey |
|
查詢key對應數據的類型 |
Type hkey1 |
|
改 |
對key進行重命名 |
Rename hkey1 hkey10 |
刪 |
刪除存在的key |
del BB |
其他 |
判斷key是否存在 |
exists AA |
爲key 設置超時時間 |
expire AA 10 |
|
爲key 設置超時時間(毫秒) |
pexpire CC 10000 |
|
移除key的過期時間 |
persist hkey1 |
-
redis當中的數據庫操作
Redis支持多個數據庫,並且每個數據庫的數據是隔離的不能共享,並且基於單機纔有,如果是集羣就沒有數據庫的概念。
Redis是一個字典結構的存儲服務器,而實際上一個Redis實例提供了多個用來存儲數據的字典,客戶端可以指定將數據存儲在哪個字典中。這與我們熟知的在一個關係數據庫實例中可以創建多個數據庫類似,所以可以將其中的每個字典都理解成一個獨立的數據庫。
每個數據庫對外都是一個從0開始的遞增數字命名,Redis默認支持16個數據庫(可以通過配置文件支持更多,無上限),可以通過配置databases來修改這一數字。客戶端與Redis建立連接後會自動選擇0號數據庫,不過可以隨時使用SELECT命令更換數據庫,
選擇指定數據庫:
select 1
清空redis數據庫當中的數據:
flushdb
清空所有redis數據庫當中的數據:
flushall