安裝
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看一下相關的資料。