mongodb,redis,mysql 簡要對比

mongodb:html

它是一個內存數據庫,數據都是放在內存裏面的。mysql

對數據的操做大部分都在內存中,但mongodb並非單純的內存數據庫。c++

持久化方式:git

mongodb的全部數據其實是存放在硬盤的,全部要操做的數據經過mmap的方式映射到內存某個區域內。github

而後,mongodb就在這塊區域裏面進行數據修改,避免了零碎的硬盤操做。redis

至於mmap上的內容flush到硬盤就是操做系統的事情了,因此,若是,mongodb在內存中修改了數據後,mmap數據flush到硬盤以前,系統宕機了,數據就會丟失。算法

mmap詳解連接:http://www.cnblogs.com/techdoc/archive/2010/12/22/1913521.htmlsql

redis:mongodb

它就是一個徹徹底底的內存數據庫了。shell

持久化方式:

redis全部數據都是放在內存中的,持久化是使用RDB方式或者aof方式。

解密redis持久化:http://blog.nosqlfan.com/html/3813.html

mysql:

不管數據仍是索引都存放在硬盤中。到要使用的時候才交換到內存中。可以處理遠超過內存總量的數據。

數據量和性能:
當物理內存夠用的時候,redis>mongodb>mysql
當物理內存不夠用的時候,redis和mongodb都會使用虛擬內存。
實際上若是redis要開始虛擬內存,那很明顯要麼加內存條,要麼你換個數據庫了。
可是,mongodb不同,只要,業務上能保證,冷熱數據的讀寫比,使得熱數據在物理內存中,mmap的交換較少。
mongodb仍是可以保證性能。有人使用mongodb存儲了上T的數據。
mysql,mysql根本就不須要擔憂數據量跟內存下的關係。不過,內存的量跟熱數據的關係會極大地影響性能表現。
當物理內存和虛擬內存都不夠用的時候,估計除了mysql你沒什麼好選擇了。
其實,從數據存儲原理來看,我更傾向於將mongodb歸類爲硬盤數據庫,可是使用了mmap做爲加速的手段而已。
簡說mmap:
mmap系統調用並非徹底爲了用於共享內存而設計的。它自己提供了不一樣於通常對普通文件的訪問方式,進程能夠像讀寫內存同樣對普通文件進行操做。
mmap 系統調用使得進程之間經過映射同一個普通文件實現共享內存。普通文件被映射到進程地址空間後,進程能夠像訪問普通內存同樣對文件進行訪問,沒必要再調用。 read(),write()等操做。mmap並不分配空間, 只是將文件映射到調用進程的地址空間裏, 而後你就能夠用memcpy等操做寫文件, 而不用write()了.寫完後用msync()同步一下, 你所寫的內容就保存到文件裏了. 不過這種方式沒辦法增長文件的長度, 由於要映射的長度在調用mmap()的時候就決定了。
 

MongoDB和Redis都是NoSQL,採用結構型數據存儲。兩者在使用場景中,存在必定的區別,這也主要因爲兩者在內存映射的處理過程,持久化的處理方法不一樣。

 MongoDB建議集羣部署,更多的考慮到集羣方案,Redis更偏重於進程順序寫入,雖然支持集羣,也僅限於主-從模式。

 

比較指標 MongoDB(v2.4.9) Redis(v2.4.17) 比較說明
實現語言 c++ c/c++ -
協議 BSON,自定義二進制 類telnet -
性能 依賴內存,TPS較高 依賴內存,TPS很是高 Redis優於MongoDB
可操做性 豐富的數據表達,索引;最相似於關係型數據庫,支持豐富的查詢語句 數據豐富,較少的IO MongoDB優於Redis
內存及存儲 適合大數據量存儲,依賴系統虛擬內存,採用鏡像文件存儲;內存佔用率比較高,官方建議獨立部署在64位系統 Redis2.0後支持虛擬內存特性(VM) 突破物理內存限制;數據能夠設置時效性,相似於memcache 不一樣的應用場景,各有千秋
可用性 支持master-slave,replicatset(內部採用paxos選舉算法,自動故障恢復),auto sharding機制,對客戶端屏蔽了故障轉移和切片機制 依賴客戶端來實現分佈式讀寫;主從複製時,每次從節點從新鏈接主節點都要依賴整個快照,無增量複製;不支持auto sharding,須要依賴程序設定一致性hash機制 MongoDB優於Redis;單點問題上,MongoDB應用簡單,相對用戶透明,Redis比較複雜,須要客戶端主動解決.(MongoDB通常使用replicasets和sharding相結合,replicasets側重高可用性以及高可靠,sharding側重性能,水平擴展)
可靠性 從1.8版本後,採用binlog方式(相似Mysql) 支持持久化 依賴快照進行持久化;AOF加強可靠性;加強性的同時,影響訪問性能

 

一致性 不支持事務,靠客戶端保證 支持事務,比較脆,僅能保證事務中的操做按順序執行 Redis優於MongoDB
數據分析 內置數據分析功能(mapreduce) 不支持 MongoDB優於Redis
應用場景 海量數據的訪問效率提高 較小數據量的性能和運算 MongoDB優於Redis
 

分類: Redis

 

http://www.cnblogs.com/chinesern/p/5581422.html

 

1\redis和mongodb,mysql


Redis是徹底在內存中保存數據的數據庫,使用磁盤只是爲了持久性目的,Redis數據所有存在內存,按期寫入磁盤,當內存不夠時,能夠選擇指定的LRU算法刪除數據,持久化是使用RDB方式或者aof方式。


mongodb是文檔型的非關係型數據庫,MongoDB更相似MySQL,支持字段索引、遊標操做,其優點在於查詢功能比較強大,擅長查詢JSON數據,能存儲海量數據,可是不支持事務。


mongodb的全部數據其實是存放在硬盤的,全部要操做的數據經過mmap的方式映射到內存某個區域內。
而後,mongodb就在這塊區域裏面進行數據修改,避免了零碎的硬盤操做。
至於mmap上的內容flush到硬盤就是操做系統的事情了,因此,若是,mongodb在內存中修改了數據後,mmap數據flush到硬盤以前,系統宕機了,數據就會丟失。


mysql:
不管數據仍是索引都存放在硬盤中。到要使用的時候才交換到內存中。可以處理遠超過內存總量的數據。


數據量和性能:
當物理內存夠用的時候,redis>mongodb>mysql
當物理內存不夠用的時候,redis和mongodb都會使用虛擬內存。
實際上若是redis要開始虛擬內存,那很明顯要麼加內存條,要麼你換個數據庫了。
可是,mongodb不同,只要,業務上能保證,冷熱數據的讀寫比,使得熱數據在物理內存中,mmap的交換較少。
mongodb仍是可以保證性能。有人使用mongodb存儲了上T的數據。
mysql,mysql根本就不須要擔憂數據量跟內存的關係。




Redis 事務支持比較弱,只能保證事務中的每一個操做連續執行
mongodb不支持事務


MongoDB 內置了數據分析的功能(mapreduce),Redis不支持


Redis只能使用單線程,性能受限於CPU性能

 

成功啓動MongoDB後,再打開一個命令行窗口輸入mongo,就能夠進行數據庫的一些操做。

輸入help能夠看到基本操做命令:

show dbs:顯示數據庫列表 
show collections:顯示當前數據庫中的集合(相似關係數據庫中的表) 
show users:顯示用戶

use <db name>:切換當前數據庫,這和MS-SQL裏面的意思同樣 
db.help():顯示數據庫操做命令,裏面有不少的命令 
db.foo.help():顯示集合操做命令,一樣有不少的命令,foo指的是當前數據庫下,一個叫foo的集合,並不是真正意義上的命令 
db.foo.find():對於當前數據庫中的foo集合進行數據查找(因爲沒有條件,會列出全部數據) 
db.foo.find( { a : 1 } ):對於當前數據庫中的foo集合進行查找,條件是數據中有一個屬性叫a,且a的值爲1

MongoDB沒有建立數據庫的命令,但有相似的命令。

如:若是你想建立一個「myTest」的數據庫,先運行use myTest命令,以後就作一些操做(如:db.createCollection('user')),這樣就能夠建立一個名叫「myTest」的數據庫。

數據庫經常使用命令

一、Help查看命令提示

 help

  db.help();

  db.yourColl.help();

  db.youColl.find().help();

  rs.help();

二、切換/建立數據庫

 use yourDB;  當建立一個集合(table)的時候會自動建立當前數據庫

三、查詢全部數據庫

 show dbs;

四、刪除當前使用數據庫

 db.dropDatabase();

五、從指定主機上克隆數據庫

 db.cloneDatabase(「127.0.0.1」); 將指定機器上的數據庫的數據克隆到當前數據庫

六、從指定的機器上覆制指定數據庫數據到某個數據庫

 db.copyDatabase("mydb", "temp", "127.0.0.1");將本機的mydb的數據複製到temp數據庫中

七、修復當前數據庫

 db.repairDatabase();

八、查看當前使用的數據庫

 db.getName();

 db; db和getName方法是同樣的效果,均可以查詢當前使用的數據庫

九、顯示當前db狀態

 db.stats();

十、當前db版本

 db.version();

十一、查看當前db的連接機器地址

 db.getMongo();

Collection彙集集合

一、建立一個彙集集合(table)

 db.createCollection(「collName」, {size: 20, capped: 5, max: 100});

二、獲得指定名稱的彙集集合(table)

 db.getCollection("account");

三、獲得當前db的全部彙集集合

 db.getCollectionNames();

四、顯示當前db全部彙集索引的狀態

 db.printCollectionStats();

 用戶相關

一、添加一個用戶

 db.addUser("name");

 db.addUser("userName", "pwd123", true); 添加用戶、設置密碼、是否只讀

二、數據庫認證、安全模式

 db.auth("userName", "123123");

三、顯示當前全部用戶

 show users;

四、刪除用戶

 db.removeUser("userName");

其餘
一、查詢以前的錯誤信息
 db.getPrevError();
二、清除錯誤記錄
 db.resetError();
 
查看彙集集合基本信息
一、查看幫助  db.yourColl.help();
二、查詢當前集合的數據條數  db.yourColl.count();
三、查看數據空間大小 db.userInfo.dataSize();
四、獲得當前彙集集合所在的db db.userInfo.getDB();
五、獲得當前彙集的狀態 db.userInfo.stats();
六、獲得彙集集合總大小 db.userInfo.totalSize();
七、彙集集合儲存空間大小 db.userInfo.storageSize();
八、Shard版本信息  db.userInfo.getShardVersion()
九、彙集集合重命名 db.userInfo.renameCollection("users"); 將userInfo重命名爲users
十、刪除當前彙集集合 db.userInfo.drop();

彙集集合查詢

一、查詢全部記錄
db.userInfo.find();
至關於:select* from userInfo;
默認每頁顯示20條記錄,當顯示不下的狀況下,能夠用it迭代命令查詢下一頁數據。注意:鍵入it命令不能帶「;」
可是你能夠設置每頁顯示數據的大小,用DBQuery.shellBatchSize= 50;這樣每頁就顯示50條記錄了。
 
二、查詢去掉後的當前彙集集合中的某列的重複數據
db.userInfo.distinct("name");
會過濾掉name中的相同數據
至關於:select distict name from userInfo;
 
三、查詢age = 22的記錄
db.userInfo.find({"age": 22});
至關於: select * from userInfo where age = 22;
 
四、查詢age > 22的記錄
db.userInfo.find({age: {$gt: 22}});
至關於:select * from userInfo where age >22;
 
五、查詢age < 22的記錄
db.userInfo.find({age: {$lt: 22}});
至關於:select * from userInfo where age <22;
 
六、查詢age >= 25的記錄
db.userInfo.find({age: {$gte: 25}});
至關於:select * from userInfo where age >= 25;
 
七、查詢age <= 25的記錄
db.userInfo.find({age: {$lte: 25}});
 
八、查詢age >= 23 而且 age <= 26
db.userInfo.find({age: {$gte: 23, $lte: 26}});
 
九、查詢name中包含 mongo的數據
db.userInfo.find({name: /mongo/});
//至關於%%
select * from userInfo where name like ‘%mongo%’;
 
十、查詢name中以mongo開頭的
db.userInfo.find({name: /^mongo/});
select * from userInfo where name like ‘mongo%’;
 
十一、查詢指定列name、age數據
db.userInfo.find({}, {name: 1, age: 1});
至關於:select name, age from userInfo;
固然name也能夠用true或false,當用ture的狀況下河name:1效果同樣,若是用false就是排除name,顯示name之外的列信息。
 
十二、查詢指定列name、age數據, age > 25
db.userInfo.find({age: {$gt: 25}}, {name: 1, age: 1});
至關於:select name, age from userInfo where age >25;
 
1三、按照年齡排序
升序:db.userInfo.find().sort({age: 1});
降序:db.userInfo.find().sort({age: -1});
 
1四、查詢name = zhangsan, age = 22的數據
db.userInfo.find({name: 'zhangsan', age: 22});
至關於:select * from userInfo where name = ‘zhangsan’ and age = ‘22’;
 
1五、查詢前5條數據
db.userInfo.find().limit(5);
至關於:selecttop 5 * from userInfo;
 
1六、查詢10條之後的數據
db.userInfo.find().skip(10);
至關於:select * from userInfo where id not in (
selecttop 10 * from userInfo
);
 
1七、查詢在5-10之間的數據
db.userInfo.find().limit(10).skip(5);
可用於分頁,limit是pageSize,skip是第幾頁*pageSize
 
1八、or與 查詢
db.userInfo.find({$or: [{age: 22}, {age: 25}]});
至關於:select * from userInfo where age = 22 or age = 25;
 
1九、查詢第一條數據
db.userInfo.findOne();
至關於:selecttop 1 * from userInfo;
db.userInfo.find().limit(1);
 
20、查詢某個結果集的記錄條數
db.userInfo.find({age: {$gte: 25}}).count();
至關於:select count(*) from userInfo where age >= 20;
 
2一、按照某列進行排序
db.userInfo.find({sex: {$exists: true}}).count();
至關於:select count(sex) from userInfo;

索引

一、建立索引
db.userInfo.ensureIndex({name: 1});
db.userInfo.ensureIndex({name: 1, ts: -1});
 
二、查詢當前彙集集合全部索引
db.userInfo.getIndexes();
 
三、查看總索引記錄大小
db.userInfo.totalIndexSize();
 
四、讀取當前集合的全部index信息
db.users.reIndex();
 
五、刪除指定索引
db.users.dropIndex("name_1");
 
六、刪除全部索引索引
db.users.dropIndexes();

 修改、添加、刪除集合數據

一、添加
db.users.save({name: ‘zhangsan’, age: 25, sex: true});
添加的數據的數據列,沒有固定,根據添加的數據爲準
 
二、修改
db.users.update({age: 25}, {$set: {name: 'changeName'}}, false, true);
至關於:update users set name = ‘changeName’ where age = 25;
 
db.users.update({name: 'Lisi'}, {$inc: {age: 50}}, false, true);
至關於:update users set age = age + 50 where name = ‘Lisi’;
 
db.users.update({name: 'Lisi'}, {$inc: {age: 50}, $set: {name: 'hoho'}}, false, true);
至關於:update users set age = age + 50, name = ‘hoho’ where name = ‘Lisi’;
 
三、刪除
db.users.remove({age: 132});
 
四、查詢修改刪除
db.users.findAndModify({
    query: {age: {$gte: 25}}, 
    sort: {age: -1}, 
    update: {$set: {name: 'a2'}, $inc: {age: 2}},
    remove: true
});
 
db.runCommand({ findandmodify : "users", 
    query: {age: {$gte: 25}}, 
    sort: {age: -1}, 
    update: {$set: {name: 'a2'}, $inc: {age: 2}},
    remove: true
});

update 或 remove 其中一個是必須的參數; 其餘參數可選。

參數

詳解

默認值

query

查詢過濾條件

{}

sort

若是多個文檔符合查詢過濾條件,將以該參數指定的排列方式選擇出排在首位的對象,該對象將被操做

{}

remove

若爲true,被選中對象將在返回前被刪除

N/A

update

一個 修改器對象

N/A

new

若爲true,將返回修改後的對象而不是原始對象。在刪除操做中,該參數被忽略。

false

fields

參見Retrieving a Subset of Fields (1.5.0+)

All fields

upsert

建立新對象若查詢結果爲空。 示例 (1.5.4+)

false

語句塊操做

一、簡單Hello World
print("Hello World!");
這種寫法調用了print函數,和直接寫入"Hello World!"的效果是同樣的;
 
二、將一個對象轉換成json
tojson(new Object());
tojson(new Object('a'));
 
三、循環添加數據
> for (var i = 0; i < 30; i++) {
... db.users.save({name: "u_" + i, age: 22 + i, sex: i % 2});
... };
這樣就循環添加了30條數據,一樣也能夠省略括號的寫法
> for (var i = 0; i < 30; i++) db.users.save({name: "u_" + i, age: 22 + i, sex: i % 2});
也是能夠的,當你用db.users.find()查詢的時候,顯示多條數據而沒法一頁顯示的狀況下,能夠用it查看下一頁的信息;
 
四、find 遊標查詢
>var cursor = db.users.find();
> while (cursor.hasNext()) { 
    printjson(cursor.next()); 
}
這樣就查詢全部的users信息,一樣能夠這樣寫
var cursor = db.users.find();
while (cursor.hasNext()) { printjson(cursor.next); }
一樣能夠省略{}號
 
五、forEach迭代循環
db.users.find().forEach(printjson);
forEach中必須傳遞一個函數來處理每條迭代的數據信息
 
六、將find遊標當數組處理
var cursor = db.users.find();
cursor[4];
取得下標索引爲4的那條數據
既然能夠當作數組處理,那麼就能夠得到它的長度:cursor.length();或者cursor.count();
那樣咱們也能夠用循環顯示數據
for (var i = 0, len = c.length(); i < len; i++) printjson(c[i]);
 
七、將find遊標轉換成數組
> var arr = db.users.find().toArray();
> printjson(arr[2]);
用toArray方法將其轉換爲數組
 
八、定製咱們本身的查詢結果
只顯示age <= 28的而且只顯示age這列數據
db.users.find({age: {$lte: 28}}, {age: 1}).forEach(printjson);
db.users.find({age: {$lte: 28}}, {age: true}).forEach(printjson);
排除age的列
db.users.find({age: {$lte: 28}}, {age: false}).forEach(printjson);
 
九、forEach傳遞函數顯示信息
db.things.find({x:4}).forEach(function(x) {print(tojson(x));});

命令 描述
Redis GEOADD 命令 將指定的地理空間位置(緯度、經度、名稱)添加到指定的key中
Redis GEODIST 命令 返回兩個給定位置之間的距離
Redis GEOHASH 命令 返回一個或多個位置元素的 Geohash 表示
Redis GEOPOS 命令 從key裏返回全部給定位置元素的位置(經度和緯度)
Redis GEORADIUS 命令 以給定的經緯度爲中心, 找出某一半徑內的元素
Redis GEORADIUSBYMEMBER 命令 找出位於指定範圍內的元素,中心點是由給定的位置元素決定
命令 描述
Redis DEL 命令 該命令用於在 key 存在是刪除 key。
Redis Dump 命令 序列化給定 key ,並返回被序列化的值。
Redis EXISTS 命令 檢查給定 key 是否存在。
Redis Expire 命令 seconds 爲給定 key 設置過時時間。
Redis Expireat 命令 EXPIREAT 的做用和 EXPIRE 相似,都用於爲 key 設置過時時間。 不一樣在於 EXPIREAT 命令接受的時間參數是 UNIX 時間戳(unix timestamp)。
Redis PEXPIREAT 命令 設置 key 的過時時間億以毫秒計。
Redis PEXPIREAT 命令 設置 key 過時時間的時間戳(unix timestamp) 以毫秒計
Redis Keys 命令 查找全部符合給定模式( pattern)的 key 。
Redis Move 命令 將當前數據庫的 key 移動到給定的數據庫 db 當中。
Redis PERSIST 命令 移除 key 的過時時間,key 將持久保持。
Redis Pttl 命令 以毫秒爲單位返回 key 的剩餘的過時時間。
Redis TTL 命令 以秒爲單位,返回給定 key 的剩餘生存時間(TTL, time to live)。
Redis RANDOMKEY 命令 從當前數據庫中隨機返回一個 key 。
Redis Rename 命令 修改 key 的名稱
Redis Renamenx 命令 僅當 newkey 不存在時,將 key 更名爲 newkey 。
Redis Type 命令 返回 key 所儲存的值的類型。
命令 描述
Redis SET 命令 設置指定 key 的值
Redis Get 命令 獲取指定 key 的值。
Redis Getrange 命令 返回 key 中字符串值的子字符
Redis Getset 命令 將給定 key 的值設爲 value ,並返回 key 的舊值(old value)。
Redis Getbit 命令 對 key 所儲存的字符串值,獲取指定偏移量上的位(bit)。
Redis Mget 命令 獲取全部(一個或多個)給定 key 的值。
Redis Setbit 命令 對 key 所儲存的字符串值,設置或清除指定偏移量上的位(bit)。
Redis Setex 命令 將值 value 關聯到 key ,並將 key 的過時時間設爲 seconds (以秒爲單位)。
Redis Setnx 命令 只有在 key 不存在時設置 key 的值。
Redis Setrange 命令 用 value 參數覆寫給定 key 所儲存的字符串值,從偏移量 offset 開始。
Redis Strlen 命令 返回 key 所儲存的字符串值的長度。
Redis Mset 命令 同時設置一個或多個 key-value 對。
Redis Msetnx 命令 同時設置一個或多個 key-value 對,當且僅當全部給定 key 都不存在。
Redis Psetex 命令 這個命令和 SETEX 命令類似,但它以毫秒爲單位設置 key 的生存時間,而不是像 SETEX 命令那樣,以秒爲單位。
Redis Incr 命令 將 key 中儲存的數字值增一。
Redis Incrby 命令 將 key 所儲存的值加上給定的增量值(increment) 。
Redis Incrbyfloat 命令 將 key 所儲存的值加上給定的浮點增量值(increment) 。
Redis Decr 命令 將 key 中儲存的數字值減一。
Redis Decrby 命令 key 所儲存的值減去給定的減量值(decrement) 。
Redis Append 命令 若是 key 已經存在而且是一個字符串, APPEND 命令將 value 追加到 key 原來的值的末尾。
命令 描述
Redis Hdel 命令 刪除一個或多個哈希表字段
Redis Hexists 命令 查看哈希表 key 中,指定的字段是否存在。
Redis Hget 命令 獲取存儲在哈希表中指定字段的值/td>
Redis Hgetall 命令 獲取在哈希表中指定 key 的全部字段和值
Redis Hincrby 命令 爲哈希表 key 中的指定字段的整數值加上增量 increment 。
Redis Hincrbyfloat 命令 爲哈希表 key 中的指定字段的浮點數值加上增量 increment 。
Redis Hkeys 命令 獲取全部哈希表中的字段
Redis Hlen 命令 獲取哈希表中字段的數量
Redis Hmget 命令 獲取全部給定字段的值
Redis Hmset 命令 同時將多個 field-value (域-值)對設置到哈希表 key 中。
Redis Hset 命令 將哈希表 key 中的字段 field 的值設爲 value 。
Redis Hsetnx 命令 只有在字段 field 不存在時,設置哈希表字段的值。
Redis Hvals 命令 獲取哈希表中全部值
命令 描述
Redis Blpop 命令 移出並獲取列表的第一個元素, 若是列表沒有元素會阻塞列表直到等待超時或發現可彈出元素爲止。
Redis Brpop 命令 移出並獲取列表的最後一個元素, 若是列表沒有元素會阻塞列表直到等待超時或發現可彈出元素爲止。
Redis Brpoplpush 命令 從列表中彈出一個值,將彈出的元素插入到另一個列表中並返回它; 若是列表沒有元素會阻塞列表直到等待超時或發現可彈出元素爲止。
Redis Lindex 命令 經過索引獲取列表中的元素
Redis Linsert 命令 在列表的元素前或者後插入元素
Redis Llen 命令 獲取列表長度
Redis Lpop 命令 移出並獲取列表的第一個元素
Redis Lpush 命令 將一個或多個值插入到列表頭部
Redis Lpushx 命令 將一個或多個值插入到已存在的列表頭部
Redis Lrange 命令 獲取列表指定範圍內的元素
Redis Lrem 命令 移除列表元素
Redis Lset 命令 經過索引設置列表元素的值
Redis Ltrim 命令 對一個列表進行修剪(trim),就是說,讓列表只保留指定區間內的元素,不在指定區間以內的元素都將被刪除。
Redis Rpop 命令 移除並獲取列表最後一個元素
Redis Rpoplpush 命令 移除列表的最後一個元素,並將該元素添加到另外一個列表並返回
Redis Rpush 命令 在列表中添加一個或多個值
Redis Rpushx 命令 爲已存在的列表添加值
命令 描述
Redis Sadd 命令 向集合添加一個或多個成員
Redis Scard 命令 獲取集合的成員數
Redis Sdiff 命令 返回給定全部集合的差集
Redis Sdiffstore 命令 返回給定全部集合的差集並存儲在 destination 中
Redis Sinter 命令 返回給定全部集合的交集
Redis Sinterstore 命令 返回給定全部集合的交集並存儲在 destination 中
Redis Sismember 命令 判斷 member 元素是不是集合 key 的成員
Redis Smembers 命令 返回集合中的全部成員
Redis Smove 命令 將 member 元素從 source 集合移動到 destination 集合
Redis Spop 命令 移除並返回集合中的一個隨機元素
Redis Srandmember 命令 返回集合中一個或多個隨機數
Redis Srem 命令 移除集合中一個或多個成員
Redis Sunion 命令 返回全部給定集合的並集
Redis Sunionstore 命令 全部給定集合的並集存儲在 destination 集合中
Redis Sscan 命令 迭代集合中的元素
命令 描述
Redis Zadd 命令 向有序集合添加一個或多個成員,或者更新已存在成員的分數
Redis Zcard 命令 獲取有序集合的成員數
Redis Zcount 命令 計算在有序集合中指定區間分數的成員數
Redis Zincrby 命令 有序集合中對指定成員的分數加上增量 increment
Redis Zinterstore 命令 計算給定的一個或多個有序集的交集並將結果集存儲在新的有序集合 key 中
Redis Zlexcount 命令 在有序集合中計算指定字典區間內成員數量
Redis Zrange 命令 經過索引區間返回有序集合成指定區間內的成員
Redis Zrangebylex 命令 經過字典區間返回有序集合的成員
Redis Zrangebyscore 命令 經過分數返回有序集合指定區間內的成員
Redis Zrank 命令 返回有序集合中指定成員的索引
Redis Zrem 命令 移除有序集合中的一個或多個成員
Redis Zremrangebylex 命令 移除有序集合中給定的字典區間的全部成員
Redis Zremrangebyrank 命令 移除有序集合中給定的排名區間的全部成員
Redis Zremrangebyscore 命令 移除有序集合中給定的分數區間的全部成員
Redis Zrevrange 命令 返回有序集中指定區間內的成員,經過索引,分數從高到底
Redis Zrevrangebyscore 命令 返回有序集中指定分數區間內的成員,分數從高到低排序
Redis Zrevrank 命令 返回有序集合中指定成員的排名,有序集成員按分數值遞減(從大到小)排序
Redis Zscore 命令 返回有序集中,成員的分數值
Redis Zunionstore 命令 計算給定的一個或多個有序集的並集,並存儲在新的 key 中
Redis Zscan 命令 迭代有序集合中的元素(包括元素成員和元素分值)
命令 描述
Redis Pfadd 命令 添加指定元素到 HyperLogLog 中。
Redis Pfcount 命令 返回給定 HyperLogLog 的基數估算值。
Redis Pgmerge 命令 將多個 HyperLogLog 合併爲一個 HyperLogLog
命令 描述
Redis Psubscribe 命令 訂閱一個或多個符合給定模式的頻道。
Redis Pubsub 命令 查看訂閱與發佈系統狀態。
Redis Publish 命令 將信息發送到指定的頻道。
Redis Punsubscribe 命令 退訂全部給定模式的頻道。
Redis Subscribe 命令 訂閱給定的一個或多個頻道的信息。
Redis Unsubscribe 命令 指退訂給定的頻道。
命令 描述
Redis Discard 命令 取消事務,放棄執行事務塊內的全部命令。
Redis Exec 命令 執行全部事務塊內的命令。
Redis Multi 命令 標記一個事務塊的開始。
Redis Unwatch 命令 取消 WATCH 命令對全部 key 的監視。
Redis Watch 命令 監視一個(或多個) key ,若是在事務執行以前這個(或這些) key 被其餘命令所改動,那麼事務將被打斷。
命令 描述
Redis Eval 命令 執行 Lua 腳本。
Redis Evalsha 命令 執行 Lua 腳本。
Redis Script Exists 命令 查看指定的腳本是否已經被保存在緩存當中。
Redis Script Flush 命令 從腳本緩存中移除全部腳本。
Redis Script kill 命令 殺死當前正在運行的 Lua 腳本。
Redis Script Load 命令 將腳本 script 添加到腳本緩存中,但並不當即執行這個腳本。
命令 描述
Redis Auth 命令 驗證密碼是否正確
Redis Echo 命令 打印字符串
Redis Ping 命令 查看服務是否運行
Redis Quit 命令 關閉當前鏈接
Redis Select 命令 切換到指定的數據庫
命令 描述
Redis Bgrewriteaof 命令 異步執行一個 AOF(AppendOnly File) 文件重寫操做
Redis Bgsave 命令 在後臺異步保存當前數據庫的數據到磁盤
Redis Client Kill 命令 關閉客戶端鏈接
Redis Client List 命令 獲取鏈接到服務器的客戶端鏈接列表
Redis Client Getname 命令 獲取鏈接的名稱
Redis Client Pause 命令 在指定時間內終止運行來自客戶端的命令
Redis Client Setname 命令 設置當前鏈接的名稱
Redis Cluster Slots 命令 獲取集羣節點的映射數組
Redis Command 命令 獲取 Redis 命令詳情數組
Redis Command Count 命令 獲取 Redis 命令總數
Redis Command Getkeys 命令 獲取給定命令的全部鍵
Redis Time 命令 返回當前服務器時間
Redis Command Info 命令 獲取指定 Redis 命令描述的數組
Redis Config Get 命令 獲取指定配置參數的值
Redis Config rewrite 命令 對啓動 Redis 服務器時所指定的 redis.conf 配置文件進行改寫
Redis Config Set 命令 修改 redis 配置參數,無需重啓
Redis Config Resetstat 命令 重置 INFO 命令中的某些統計數據
Redis Dbsize 命令 返回當前數據庫的 key 的數量
Redis Debug Object 命令 獲取 key 的調試信息
Redis Debug Segfault 命令 讓 Redis 服務崩潰
Redis Flushall 命令 刪除全部數據庫的全部key
Redis Flushdb 命令 刪除當前數據庫的全部key
Redis Info 命令 獲取 Redis 服務器的各類信息和統計數值
Redis Lastsave 命令 返回最近一次 Redis 成功將數據保存到磁盤上的時間,以 UNIX 時間戳格式表示
Redis Monitor 命令 實時打印出 Redis 服務器接收到的命令,調試用
Redis Role 命令 返回主從實例所屬的角色
Redis Save 命令 異步保存數據到硬盤
Redis Shutdown 命令 異步保存數據到硬盤,並關閉服務器
Redis Slaveof 命令 將當前服務器轉變爲指定服務器的從屬服務器(slave server)
Redis Showlog 命令 管理 redis 的慢日誌
Redis Sync 命令 用於複製功能(replication)的內部命令
相關文章
相關標籤/搜索