Redis命令介紹
這裡有更詳細的使用總結 所以搬過來了
http://blog.nosqlfan.com/html/3139.html
資料型別
2.1 String型別
Redis能儲存二進位制安全的字串,最大長度為1GB
redis 127.0.0.1:6379> SET name "John Doe" OK redis 127.0.0.1:6379> GET name "John Doe"
String型別還支援批量的讀寫操作
redis 127.0.0.1:6379> MSET age 30 sex "male" OK redis 127.0.0.1:6379> MGET age sex 1) "30" 2) "male"
String型別其實也可以用來儲存數字,並支援對數字的加減操作。
redis 127.0.0.1:6379> INCR age (integer) 31 redis 127.0.0.1:6379> INCRBY age 4 (integer) 35 redis 127.0.0.1:6379> GET age "35" redis 127.0.0.1:6379> DECR age (integer) 34 redis 127.0.0.1:6379> DECRBY age 4 (integer) 30 redis 127.0.0.1:6379> GET age "30"
String型別還支援對其部分的修改和獲取操作
redis 127.0.0.1:6379> APPEND name " Mr." (integer) 12 redis 127.0.0.1:6379> GET name "John Doe Mr." redis 127.0.0.1:6379> STRLEN name (integer) 12 redis 127.0.0.1:6379> SUBSTR name 0 3 "John"
2.2 List型別
Redis能夠將資料儲存成一個連結串列,並能對這個連結串列進行豐富的操作
redis 127.0.0.1:6379> LPUSH students "John Doe" (integer) 1 redis 127.0.0.1:6379> LPUSH students "Captain Kirk" (integer) 2 redis 127.0.0.1:6379> LPUSH students "Sheldon Cooper" (integer) 3 redis 127.0.0.1:6379> LLEN students (integer) 3 redis 127.0.0.1:6379> LRANGE students 0 2 1) "Sheldon Cooper" 2) "Captain Kirk" 3) "John Doe" redis 127.0.0.1:6379> LPOP students "Sheldon Cooper" redis 127.0.0.1:6379> LLEN students (integer) 2 redis 127.0.0.1:6379> LRANGE students 0 1 1) "Captain Kirk" 2) "John Doe" redis 127.0.0.1:6379> LREM students 1 "John Doe" (integer) 1 redis 127.0.0.1:6379> LLEN students (integer) 1 redis 127.0.0.1:6379> LRANGE students 0 0 1) "Captain Kirk"
Redis也支援很多修改操作
redis 127.0.0.1:6379> LINSERT students BEFORE "Captain Kirk" "Dexter Morgan" (integer) 3 redis 127.0.0.1:6379> LRANGE students 0 2 1) "Dexter Morgan" 2) "Captain Kirk" 3) "John Doe" redis 127.0.0.1:6379> LPUSH students "Peter Parker" (integer) 4 redis 127.0.0.1:6379> LRANGE students 0 3 1) "Peter Parker" 2) "Dexter Morgan" 3) "Captain Kirk" 4) "John Doe" redis 127.0.0.1:6379> LTRIM students 1 3 OK redis 127.0.0.1:6379> LLEN students (integer) 3 redis 127.0.0.1:6379> LRANGE students 0 2 1) "Dexter Morgan" 2) "Captain Kirk" 3) "John Doe" redis 127.0.0.1:6379> LREM students 1 "John Doe" (integer) 1 redis 127.0.0.1:6379> LLEN students (integer) 1 redis 127.0.0.1:6379> LRANGE students 0 1 1) "Captain Kirk"
2.3 集合(Sets)型別
Redis能夠將一系列不重複的值儲存成一個集合
redis 127.0.0.1:6379> SADD birds crow (integer) 1 redis 127.0.0.1:6379> SADD birds pigeon (integer) 1 redis 127.0.0.1:6379> SADD birds bat (integer) 1 redis 127.0.0.1:6379> SADD mammals dog (integer) 1 redis 127.0.0.1:6379> SADD mammals cat (integer) 1 redis 127.0.0.1:6379> SADD mammals bat (integer) 1 redis 127.0.0.1:6379> SMEMBERS birds 1) "bat" 2) "crow" 3) "pigeon" redis 127.0.0.1:6379> SMEMBERS mammals 1) "bat" 2) "cat" 3) "dog"
Sets結構也支援相應的修改操作
redis 127.0.0.1:6379> SREM mammals cat (integer) 1 redis 127.0.0.1:6379> SMEMBERS mammals 1) "bat" 2) "dog" redis 127.0.0.1:6379> SADD mammals human (integer) 1 redis 127.0.0.1:6379> SMEMBERS mammals 1) "bat" 2) "human" 3) "dog"
Redis還支援對集合的子交併補等操作
redis 127.0.0.1:6379> SINTER birds mammals 1) "bat" redis 127.0.0.1:6379> SUNION birds mammals 1) "crow" 2) "bat" 3) "human" 4) "pigeon" 5) "dog" redis 127.0.0.1:6379> SDIFF birds mammals 1) "crow" 2) "pigeon"
2.4 有序集合(Sorted Sets)型別
Sorted Sets和Sets結構相似,不同的是存在Sorted Sets中的資料會有一個score屬性,並會在寫入時就按這個score排好序。
redis 127.0.0.1:6379> ZADD days 0 mon (integer) 1 redis 127.0.0.1:6379> ZADD days 1 tue (integer) 1 redis 127.0.0.1:6379> ZADD days 2 wed (integer) 1 redis 127.0.0.1:6379> ZADD days 3 thu (integer) 1 redis 127.0.0.1:6379> ZADD days 4 fri (integer) 1 redis 127.0.0.1:6379> ZADD days 5 sat (integer) 1 redis 127.0.0.1:6379> ZADD days 6 sun (integer) 1 redis 127.0.0.1:6379> ZCARD days (integer) 7 redis 127.0.0.1:6379> ZRANGE days 0 6 1) "mon" 2) "tue" 3) "wed" 4) "thu" 5) "fri" 6) "sat" 7) "sun" redis 127.0.0.1:6379> ZSCORE days sat "5" redis 127.0.0.1:6379> ZCOUNT days 3 6 (integer) 4 redis 127.0.0.1:6379> ZRANGEBYSCORE days 3 6 1) "thu" 2) "fri" 3) "sat" 4) "sun"
2.5 Hash型別
Redis能夠儲存key對多個屬性的資料(比如user1.uname user1.passwd)
redis 127.0.0.1:6379> HKEYS student 1) "name" 2) "age" 3) "sex" redis 127.0.0.1:6379> HVALS student 1) "Ganesh" 2) "30" 3) "Male" redis 127.0.0.1:6379> HGETALL student 1) "name" 2) "Ganesh" 3) "age" 4) "30" 5) "sex" 6) "Male" redis 127.0.0.1:6379> HDEL student sex (integer) 1 redis 127.0.0.1:6379> HGETALL student 1) "name" 2) "Ganesh" 3) "age" 4) "30"
Hash資料結構能夠批量修改和獲取
redis 127.0.0.1:6379> HMSET kid name Akshi age 2 sex Female OK redis 127.0.0.1:6379> HMGET kid name age sex 1) "Akshi" 2) "2" 3) "Female"
3.Publish/Subscribe
Redis支援這樣一種特性,你可以將資料推到某個資訊管道中,然後其它人可以通過訂閱這些管道來獲取推送過來的資訊。
3.1 訂閱資訊管道
用一個客戶端訂閱管道
redis 127.0.0.1:6379> SUBSCRIBE channelone Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "channelone" 3) (integer) 1
另一個客戶端往這個管道推送資訊
redis 127.0.0.1:6379> PUBLISH channelone hello (integer) 1 redis 127.0.0.1:6379> PUBLISH channelone world (integer) 1
然後第一個客戶端就能獲取到推送的資訊
redis 127.0.0.1:6379> SUBSCRIBE channelone Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "channelone" 3) (integer) 1 1) "message" 2) "channelone" 3) "hello" 1) "message" 2) "channelone" 3) "world"
3.2 按一定模式批量訂閱
用下面的命令訂閱所有channel開頭的資訊通道
redis 127.0.0.1:6379> PSUBSCRIBE channel* Reading messages... (press Ctrl-C to quit) 1) "psubscribe" 2) "channel*" 3) (integer) 1
在另一個客戶端對兩個推送資訊
redis 127.0.0.1:6379> PUBLISH channelone hello (integer) 1 redis 127.0.0.1:6379> PUBLISH channeltwo world (integer) 1
然後在第一個客戶端就能收到推送的資訊
redis 127.0.0.1:6379> PSUBSCRIBE channel* Reading messages... (press Ctrl-C to quit) 1) "psubscribe" 2) "channel*" 3) (integer) 1 1) "pmessage" 2) "channel*" 3) "channelone" 4) "hello" 1) "pmessage" 2) "channel*" 3) "channeltwo" 4) "world"
4.資料過期設定
Redis支援按key設定過期時間,過期後值將被刪除(在客戶端看來是補刪除了的)
用TTL命令可以獲取某個key值的過期時間(-1表示永不過期)
redis 127.0.0.1:6379> SET name "John Doe" OK redis 127.0.0.1:6379> TTL name (integer) -1
下面命令先用EXISTS命令檢視key值是否存在,然後設定了5秒的過期時間
redis 127.0.0.1:6379> SET name "John Doe" OK redis 127.0.0.1:6379> EXISTS name (integer) 1 redis 127.0.0.1:6379> EXPIRE name 5 (integer) 1
5秒後再檢視
redis 127.0.0.1:6379> EXISTS name (integer) 0 redis 127.0.0.1:6379> GET name (nil)
這個值已經沒有了。
上在是直接設定多少秒後過期,你也可以設定在某個時間點過期,下面例子是設定2011-09-24 00:40:00過期。
redis 127.0.0.1:6379> SET name "John Doe" OK redis 127.0.0.1:6379> EXPIREAT name 1316805000 (integer) 1 redis 127.0.0.1:6379> EXISTS name (integer) 0
5.事務性
Redis本身支援一些簡單的組合型的命令,比如以NX結尾命令都是判斷在這個值沒有時才進行某個命令。
redis 127.0.0.1:6379> SET name "John Doe" OK redis 127.0.0.1:6379> SETNX name "Dexter Morgan" (integer) 0 redis 127.0.0.1:6379> GET name "John Doe"
redis 127.0.0.1:6379> GETSET name "Dexter Morgan" "John Doe" redis 127.0.0.1:6379> GET name "Dexter Morgan"
當然,Redis還支援自定義的命令組合,通過MULTI和EXEC,將幾個命令組合起來執行
redis 127.0.0.1:6379> SET counter 0 OK redis 127.0.0.1:6379> MULTI OK redis 127.0.0.1:6379> INCR counter QUEUED redis 127.0.0.1:6379> INCR counter QUEUED redis 127.0.0.1:6379> INCR counter QUEUED redis 127.0.0.1:6379> EXEC 1) (integer) 1 2) (integer) 2 3) (integer) 3 redis 127.0.0.1:6379> GET counter "3"
你還可以用DICARD命令來中斷執行中的命令序列
redis 127.0.0.1:6379> SET newcounter 0 OK redis 127.0.0.1:6379> MULTI OK redis 127.0.0.1:6379> INCR newcounter QUEUED redis 127.0.0.1:6379> INCR newcounter QUEUED redis 127.0.0.1:6379> INCR newcounter QUEUED redis 127.0.0.1:6379> DISCARD OK redis 127.0.0.1:6379> GET newcounter "0"
6.持久化
Redis的所有資料都儲存在記憶體中,但是他也提供對這些資料的持久化。
6.1 資料快照
資料快照的原理是將整個Redis中存的所有資料遍歷一遍存到一個副檔名為rdb的資料檔案中。通過SAVE命令可以呼叫這個過程。
redis 127.0.0.1:6379> SET name "John Doe" OK redis 127.0.0.1:6379> SAVE OK redis 127.0.0.1:6379> SET name "Sheldon Cooper" OK redis 127.0.0.1:6379> BGSAVE Background saving started
如果你是使用的brew在Mac OSX上安全的Redis,那麼rdb檔案會存在如下路徑
/usr/local/var/db/redis/dump.rdb
6.2 Append-Only File(追加式的操作日誌記錄)
Redis還支援一種追加式的操作日誌記錄,叫append only file,其日誌檔案以aof結局,我們一般各為aof檔案。要開啟aof日誌的記錄,你需要在配置檔案中進行如下設定:
appendonly yes
這時候你所有的操作都會記錄在aof日誌檔案中
redis 127.0.0.1:6379> GET name (nil) redis 127.0.0.1:6379> SET name "Ganesh Gunasegaran" OK redis 127.0.0.1:6379> EXIT → cat /usr/local/var/db/redis/appendonly.aof *2 $6 SELECT $1 0 *3 $3 SET $4 name $18 Ganesh Gunasegaran
7.管理命令
Redis支援多個DB,預設是16個,你可以設定將資料存在哪一個DB中,不同DB間的資料具有隔離性。也可以在多個DB間移動資料。
redis 127.0.0.1:6379> SELECT 0 OK redis 127.0.0.1:6379> SET name "John Doe" OK redis 127.0.0.1:6379> SELECT 1 OK redis 127.0.0.1:6379[1]> GET name (nil) redis 127.0.0.1:6379[1]> SELECT 0 OK redis 127.0.0.1:6379> MOVE name 1 (integer) 1 redis 127.0.0.1:6379> SELECT 1 OK redis 127.0.0.1:6379[1]> GET name "John Doe"
Redis還能進行一些如下操作,獲取一些執行資訊
redis 127.0.0.1:6379[1]> DBSIZE (integer) 1 redis 127.0.0.1:6379[1]> INFO redis_version:2.2.13 redis_git_sha1:00000000 redis_git_dirty:0 arch_bits:64 multiplexing_api:kqueue ......
Redis還支援對某個DB資料進行清除(當然清空所有資料的操作也是支援的)
redis 127.0.0.1:6379> SET name "John Doe" OK redis 127.0.0.1:6379> DBSIZE (integer) 1 redis 127.0.0.1:6379> SELECT 1 OK redis 127.0.0.1:6379[1]> SET name "Sheldon Cooper" OK redis 127.0.0.1:6379[1]> DBSIZE (integer) 1 redis 127.0.0.1:6379[1]> SELECT 0 OK redis 127.0.0.1:6379> FLUSHDB OK redis 127.0.0.1:6379> DBSIZE (integer) 0 redis 127.0.0.1:6379> SELECT 1 OK redis 127.0.0.1:6379[1]> DBSIZE (integer) 1 redis 127.0.0.1:6379[1]> FLUSHALL OK redis 127.0.0.1:6379[1]> DBSIZE (integer) 0
相關推薦
Redis命令介紹
這裡有更詳細的使用總結 所以搬過來了 http://blog.nosqlfan.com/html/3139.html 資料型別 2.1 String型別 Redis能儲存二進位制安全的字串,最大長度為1GB redis 127.0.0.1:6379> S
redis GEO地理位置命令介紹
each limits 排序。 ima 字符 lex member pat uniq GEOADD keylongitude latitude member [longitude latitude member ...] Available since 3.2.0. T
redis命令:info 的簡單介紹
1.背景 如果客戶端連線redis後,執行緩慢,那麼可以通過redis的 INFO commandstats命令來了解下下命令執行的的一些統計資訊; 2.具體 通過redis-cli連線一個redis 節點,然後執行如下命令: INFO com
redis命令及操作記錄以及redis的五種資料型別介紹
相關啟動命令(linux): redis-server啟動命令 sudo /usr/local/bin/redis-server /home/lbxzfr/config/redis/redis.conf redis_cli客戶端連結命令 redis-cli -h loca
Redis的Zset集合命令介紹及使用
Redis的Zset常用命令總結:1.zadd key value(v1 k1 v2 k2 v3 k3) :向Zset集合中新增資料。 2. zrange :檢視value值。zrange key start end withscores :檢視value值及鍵值。ZRANG
Redis簡單介紹以及數據類型存儲
博客 個數 取值 rom 特點 而且 ring oid wan 因為我們在大型互聯網項目其中。用戶訪問量比較大,比較多。會產生並發問題,對於此。我們該怎樣解決呢。Redis橫空出世,首先,我們來簡單的認識一下Redis。具體介紹例如以下所看到的:
redis命令monitor詳解
monitor 窗口 inf 做了 命令 linux blog linux中 技術分享 通過monitor這個命令可以查看數據庫在當前做了什麽操作,對於管理redis數據庫有這很大的幫助 如圖示,在redis客戶端進行操作顯示info,另一個窗口打
Redis命令學習-?Transaction(事務)
list lib targe 失敗 reference ret con margin bold ?DISCARD ?DISCARD :取消事務,放棄運行事務塊內的全部代碼。假設在使用WATCH命令監視某個key。則取消監視,等同於UNWATCH。 ?
12個Linux進程管理命令介紹
pcs 交互 普通用戶 創建 展示 結束 註意 資源限制 組合 12個Linux進程管理命令介紹 當程序可以執行文件存放在存儲中,並且運行的時候,每個進程會被動態得分配系統資源、內存、安全屬性和與之相關的狀態。可以有多個進程關聯到同一個程序,並同時執行不會互相幹擾。Lin
二、Redis命令行和配置文件redis.windows.conf
存在 默認 localhost 字符串 con all get bsp 多行 一、Redis發送命令的兩種方式 redis-cli -h localhost -p 6379redis-cli ping 返回pong 證明正常 二、命令返回值 1、狀態回復,如ping命令
redis 簡單介紹
list 它的 hash 浮點型 字符 簡單介紹 結合 red 場景 1.redis基本數據結構與短結構壓縮 了解redis的數據結構有助於了解每種數據結構的優劣勢,方便設計合理的cache結構。 1.1.redis提供5種數據結構 1.STRING:可以存儲字符串、浮點
Redis 學習之路 (010) - redis命令手冊
哈希 sts 集中 cluster htm second 不同 index scribe Redis 鍵(key) 命令 命令描述 Redis DEL 命令 該命令用於在 key 存在是刪除 key。 Redis Dump 命令 序列化給定 key ,並返回被
用戶和組管理命令介紹與詳解
linux 命令用戶管理命令:useradd,userdel,usermod,passwd,chsh.chfn,finger,id,chageUseradd(建立用戶)useradd [options] USERNAME 例:useradd -g mygroup user2建立一個
redis命令
redis keys 命令啟動客戶端redis-cli檢測redis服務是否啟動>PING遠程服務器執行命令redis-cli -h host -p port -a passwordRedis 鍵命令用於管理 redis 的鍵。redis 127.0.0.1:6379> COMMAND KEY_N
awk命令介紹和常見使用方法
awkawk、sed、grep這三個命令並稱為文本處理三劍客,但是awk的功能遠遠多出其他兩個命令很多。最初由貝爾實驗室研制。後來GUN組織在awk的基礎上研制了gawk,現在我們在Linux使用的一般都是gawk這個命令,但是為了一些習慣,將awk作為gawk的鏈接,也就是說,現在在bash中使用awk還是
redis實戰筆記(3)-第3章 Redis命令
chan 4.4 ges 打包 常用 重要 讀取 表操作 nio 第3章 Redis命令 本章主要內容 字符串命令、 列表命令和集合命令 散列命令和有序集合命令 發布命令與訂閱命令 其他命令 在每個不同的數據類型的章節裏, 展示的都是該數據類型所獨有的、 最具代表性
PHP-redis命令之 strings (字符串)
edi string cond app expire redis exists ray 檢查 一.string (字符串) 1.set:設置鍵 $reids->set(‘mykey‘,111); 2.get:獲取鍵 $redis->get(‘myk
PHP-redis命令之 列表(lists)
輸出 最後一個元素 索引 error 相對 超出 .cn insert 進行 三、列表(lists) 1.lpush:將所有指定的值插入到存於 key 的列表的頭部。如果 key 不存在,那麽在進行 push 操作前會創建一個空列表。 如果 key 對應的值不是一個 lis
2.Redis 入門介紹
連接不上 解壓 linux下 基於 保持 守護進程 數據結構 tin 基於內存 A)入門概述: 1.是什麽: Redis:REmote Dlctionary Server(遠程字典服務器) 是完全開源免費的,用C語言編寫的,遵循BSD協議,是一個高性
linux入門基礎知識及簡單命令介紹
linux基礎linux入門基礎知識介紹1、計算機硬件組成介紹計算機主要由cpu(運算器、控制器),內存,I/O,外部存儲等構成。 cpu主要是用來對二進制數據進行運算操作,它從內存中取出數據,然後進行相應的運算操作。不能從硬盤中直接取數據。 內存從外部存儲中取出數據供cpu運存。內存的最小單位是