Redis的預設連接埠號碼為6379
預設16個資料庫,類似陣列下標從0開始,初始預設使用0號庫。
使用指令select <dbid></dbid>
來切換資料庫。如: select 8。
統一密碼管理,所有函式庫同樣密碼。
dbsize
查看目前資料庫的key的數量。 flushdb
清空目前庫。 flushall
通殺全部庫。
Redis是單執行緒 多路IO復用技術。
多路復用是指使用一個線程來檢查多個文件描述符( Socket )的就緒狀態,比如調用select和poll函數,傳入多個文件描述符,如果有一個文件描述符就緒,則返回,否則阻塞直到超時。得到就緒狀態後進行真正的操作可以在同一個執行緒裡執行,也可以啟動執行緒執行(例如使用執行緒池)。
序列 VS 多執行緒鎖定 (memcached) VS 單執行緒多路IO復用(Redis)
Redis與Memcache三點不同:
支援多資料型別
#支援持久化
keys *:檢視目前庫所有key (符合: keys *1)
exists key:判斷某個key是否存在。
type key:查看你的key是什麼型別。
del key:刪除指定的key數據,
unlink key:根據value選擇非阻塞刪除。僅將keys從keyspace元資料中刪除,真正的刪除會在後續非同步操作。 。
expire key 10:10 秒鐘,為給定的key設定過期時間,
ttl key:查看還有多少秒過期, -1表示永不過期, -2表示已過期。
select指令切換資料庫,
dbsize查看目前資料庫的key的數量。
flushdb清空目前庫。
flushall通殺全部函式庫
String類型是二進位安全的。意味著Redis的string可以包含任何資料。例如jpg圖片
或是序列化的物件。
String類型是Redis最基本的資料類型, 一個Redis中字串value最多可以是512M。
set :新增鍵值對。
當設定過值的key再被設定一個新的值時,新的值會覆寫舊的。
*NX:當資料庫中key不存在時,可以將key-value新增資料庫。*XX:當資料庫中key存在時,可以將key-value新增資料庫,與NX參數互斥。
*EX: key的超時秒數。
*PX: key 的超時毫秒數,與EX互斥。
get 查詢對應鍵值.
append 將給定的追加到原值的結尾,
strlen 獲得值的長度。
setnx 只有在key不存在時設定key的值.
incr將key中儲存的數字值增加1。
只能對數字值運算,如果為空,新增值為10
decr將key中儲存的數字值減1 。
只能對數字值操作。若為空,新增值為-1。
inrjy/ decrby 將key中儲存的數字值增減。自訂步長。
incr和decr是原子運算
而java中的i 則不是原子運算
mset同時設定一個或多個key-value對。....
mget同時取得一個或多個value。
msetnx
它是原子性的
同時設定一個或多個key-value對,當且僅當所有給定key都不存在時,才成功。
有一個是之前存在的則不成功
getrange、setrange
getrange
#獲得值的範圍,類似java中的substring ,前包,後包
#setrange
用覆寫所儲存的字串值,從
設定過期時間
setex
#設定鍵值的同時,設定過期時間,單位秒。
取代舊值
getset
以新換舊,設定了新值同時獲得舊值。
SDS是String資料結構的簡寫,其代表了簡單動態字串的資料結構。是可以修改的字串,內部結構實作上類似Java的ArrayList ,採用預先分配冗餘空間的方式來減少記憶體的頻繁分配。
內部空間capacity通常比實際字串長度len更大,如圖所示。如果字串長度不足1M,則擴展時會將現有空間加倍。但如果長度超過1M,每次擴充只增加1M的空間。需要注意的是字串最大長度為512M。
以上是Redis中鍵和字串常用指令有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!