安裝
linux安裝及配置之前寫過了http://www.cnblogs.com/zycbloger/p/6226682.html
windows安裝
下載地址:https://github.com/MicrosoftArchive/redis/releases
我下的是zip,解壓后
具體的配置和linux一樣看那個就行了!
運行
打開一個 cmd 窗口 使用cd命令切換目錄到 解壓的目錄運行
redis-server.exe redis.windows.conf
如果想方便的話,可以把 redis 的路徑加到系統的環境變量里或者寫個 .bat文件 redis-server redis.windows.conf 雙擊就可以運行了,這樣就省得再輸路徑了,后面的那個 redis.windows.conf 可以省略,如果省略,會啟用默認的。輸入之后,會顯示如下界面:
另啟一個cmd窗口,原來的不要關閉
切換到redis目錄下運行
redis-cli.exe -h 127.0.0.1 -p 6000 -a xxx
- -h: 是指地址127.0.0.1 指的是本地,如果是遠程的就寫遠程的地址
- -p: 這邊是端口號,具體看個人的配置 redis.windows.conf 里面的
- -a: 密碼 同上 沒設就不用 寫 -a了
ping 如果 pong 就說明是連接通過了
nodejs上的應用
安裝 redis 依賴包
npm install redis --save
連接
var redis = require('redis'),
config = require('../config'),
dbConfig = config.redis,
RDS_PORT = dbConfig.port, //端口號
RDS_HOST = dbConfig.host, //服務器IP
RDS_PWD = dbConfig.pass, //密碼
RDS_OPTS = {auth_pass: RDS_PWD},
client = redis.createClient(RDS_PORT, RDS_HOST, RDS_OPTS);
client.on('ready',function(res){
console.log('ready');
});
client.on('end',function(err){
console.log('end');
});
client.on('error', function (err) {
console.log(err);
});
client.on('connect',function(){
console.log('redis connect success!');
});
基本的使用
字符串
- set key value 設置key的value
- get key 得到key的value
- incr key key如果是整型自增1
- keys * 得到所有key
結合node 使用
client.set('name', 'zyc', function (err, res) {
// todo..
});
client.get('name', function (err, res) {
// todo...
});
哈希
- hset key filed value 設置key對象的field屬性的value
- hget key filed 得到key對象的field屬性的value
- hgetall key 得到key對象的所有的屬性和值
- hdel key field 刪除
- hexists key field 判斷對象是否存在這個field
client.hmset("hosts", "mjr", "1", "another", "23", "home", "1234");
client.hgetall("hosts", function (err, obj) {
console.dir(obj);
});
client.hmset(key2, {
"0123456789": "abcdefghij", // NOTE: key and value will be coerced to strings
"some manner of key": "a type of value"
});
列表
- lpush key value [value ...] 向鏈表key左邊添加元素
- rpush key value [value...] 向鏈表key右邊添加元素
- lpop key 移除key鏈表左邊第一個元素
- rpop key 移除key鏈表右邊第一元素
- lrange key start stop 獲取鏈表中某一段,包含最大值,-1表示最后一個元素
集合類型
- sadd key member [member ...] 向集合key中添加元素,如果元素已經存在則忽略
- srem key member [member ...] 從集合key中刪除元素
- smembers key 返回集合key中所有的元素
- sinter key [key ...] 多個集合執行交集運算
- sdiff key [key ...] 多個集合執行差集運算
- sunion key [key ...] 多個集合執行並集運算
有序集合
- zadd key score member [score member ...] 向有序集合key中加入一個或多個元素和分數,如果元素已經存在,則替換分數
- zrem key member [member ...] 刪除集合中一個或多個元素
- zrange key start stop [withscores] 按元素分數從小到大順序返回元素,如需獲得對應元素的分數,在尾部加上withscores
- zrevrange key start stop [withscores] 按元素分數從大到小順序返回元素
client.zadd(table, score, id, function (err, res) {
});
//刪除單個
client.zrem(table, id, function (err, res) {
));
// 刪除多個
client.zrem(table, arr, function (err, res) {
});
// 從大到小 查詢
client.zrevrange(table, 0, -1, function (err, res) {
})
https://www.npmjs.com/package/redis 可以去redis看一下相關的資料。