zoukankan      html  css  js  c++  java
  • nodejs+redis使用

    安装

    linux安装及配置之前写过了http://www.cnblogs.com/zycbloger/p/6226682.html

    windows安装
    下载地址:https://github.com/MicrosoftArchive/redis/releases

    我下的是zip,解压后
    img

    具体的配置和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看一下相关的资料。

  • 相关阅读:
    hdu 1003 dp最大子序列和
    模拟题 (+queue队列知识)
    hdu 1016 DFS
    OSGi 系列(二)之 Hello World
    OSGi 系列(一)之什么是 OSGi :Java 语言的动态模块系统
    Mina 系列(四)之KeepAliveFilter -- 心跳检测
    Mina 系列(三)之自定义编解码器.md
    Mina 系列(二)之基础
    Mina 快速入门
    Java 8 Optional 类深度解析
  • 原文地址:https://www.cnblogs.com/zycbloger/p/node-redis.html
Copyright © 2011-2022 走看看