之前已經介紹過redis裡各種資料類型的指派操作,在這裡則介紹一下各個資料類型的其他常用的操作。
string類型的操作:
使用set指令對已存在的鍵/值進行指派的話,會覆寫原有的值:
使用setnx指令則可以在指派時檢測目标鍵值是否已存在,如果存在會傳回0,不會覆寫原有的鍵值。不存在則傳回1并建立該鍵值:
set指令中的ex參數可以給某個鍵值設定過期時間:
setex指令則是先設定過期時間然後再設定值:
<br>
list類型的操作:
lpush指令可以從左邊添加元素,或者可以了解為從上面添加元素。清單中的元素可以了解為左右關系也可以了解為上下關系,主要看個人習慣:
lpop指令則是可以從左邊拿取元素:
linsert指令用于指定在某個元素的前、後位置插入元素,例如:
lset指令用來修改某一個指定的元素:
lindex指令檢視某個下标的元素:
llen指令檢視某個清單中的元素數量:
set類型的操作:
sadd seta aaa //向集合seta中放入元素
smembers seta //檢視集合中的所有元素
srem seta aaa //删除元素
spop seta //随機取出一個元素,删除
sdiff seta setb //求差集,以seta為标準
sdiffstore setc seta setb //求seta和setb的差集并且将結果存儲,存儲到了setc裡
sinter seta setb //求交集
sinterstore setd seta setb //将交集存儲setd
sunion seta setb //求并集
sunionstore sete seta setb //求并集并存儲到sete
sismember指令可以判斷一個元素是否屬于一個集合,有則傳回1,沒有則傳回0:
srandmember指令可以随機取出一個元素,但不删除:
zset類型的操作:
zadd zseta 11 123 //建立有序集合
zrange zseta 0 -1 //顯示所有元素,按順序顯示
zrange zseta 0 -1 withscores //可以帶上分值,也就是添加元素時給的數字
zrem zseta 222 //删除指定元素
zrank zseta 222 //傳回元素的索引值也就是下标,索引值從0開始,按score正向排序
zrevrank zseta 222 //同上,不同的是,按score反序排序
zrevrange zseta 0 -1 反序顯示所有元素
zcard zseta //傳回集合中所有元素的個數
zcount zseta 1 10 // 傳回分值範圍1-10的元素個數
zrangebyscore zseta 1 10 // 傳回分值範圍1-10的元素
zremrangebyrank zseta 0 2 //删除索引範圍0-2的元素,按score正向排序
zremrangebyscore zseta 1 10 //删除分值範圍1-10的元素
hash類型的操作:
//單個建立hash鍵值
hset user1 name aming
hset user1 age 30
hset user1 job it
//批量建立鍵值對
hmset user2 name aming age 30 job it
// 批量獲得鍵值對
hmget user2 name age job
//得到所有的鍵值對
hgetall user1
//删除指定filed
hdel user2 job
//列印所有的key
hkeys user2
//列印所有的values
hvals user2
//檢視hash有幾個filed
hlen user2
keys *可以列印目前redis存儲的鍵:
keys支援模糊比對:
exists指令可以判斷某個鍵是否存在,存在傳回1 ,否則傳回0:
del指令可以删除一個key ,删除成功傳回1 ,否則傳回0:
EXPIRE指令可以給指定的鍵設定一個過期時間:
ttl 指令可以檢視指定的鍵還有多長時間過期,機關是秒,當 key 不存在時,傳回 -2 。 當 key 存在但沒有設定剩餘生存時間時,傳回 -1 。 否則,傳回 key 的剩餘生存時間。
select指令可以選擇一個資料庫,redis預設有6個資料庫,通過0-6的數字就可以選擇進入哪一個庫:
move set1 1 // 把set1移動到 1 資料庫裡:
persist key1 //取消key1的過期時間
randomkey //随機傳回一個key
rename oldname newname //重命名key
type key1 //傳回鍵的類型
dbsize指令可以傳回目前資料庫中key的數目
info //傳回redis資料庫狀态資訊
flushdb //清空目前資料庫中所有的鍵:
flushall //清空所有資料庫中的所有的key
bgsave //儲存資料到 rdb檔案中,會在背景運作:
save //作用同上,但是在前台運作
config get * //擷取所有配置參數,奇數行是鍵,偶數行是值:
config get dir //通過鍵擷取某個配置參數
config set dir //更改配置參數
資料恢複: 首先定義或者确定dir目錄和dbfilename,然後把備份的rdb檔案放到dir目錄下面,重新開機redis服務即可恢複資料。
redis預設會監聽所有ip,這樣的話所有ip都能來進行連接配接,是以需要設定指定的監聽ip來提高安全性。
redis預設端口是6379,如果使用預設端口很容易被黑客掃到,是以設定一個其他的監聽端口也可以提高安全性。
redis預設是沒有密碼的,是以還需要設定密碼:
修改完之後重新開機redis服務:
killall redis-server redis-server /etc/redis.conf
這時候雖然可以還進入redis指令行,但是不能夠執行指令了:
需要通過 -a 選項指定密碼登入:
因為config指令可以獲得所有的配置參數,是以有一定的風險,但是我們可以将config指令改名,同樣的需要編輯配置檔案:
再次進入指令行可以發現原本的config指令不能用了:
如果不需要使用config指令的話,可以在配置檔案中添加這一行禁用config指令:
rename-command CONFIG ""
本文轉自 ZeroOne01 51CTO部落格,原文連結:http://blog.51cto.com/zero01/2056738,如需轉載請自行聯系原作者