安装
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看一下相关的资料。