nodejs+redis使用
安装
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看一下相关的资料。
nodejs+redis使用的更多相关文章
- nodejs + redis/mysql 连接池问题
nodejs + redis/mysql 连接池问题 需不需要连接池 连接池的作用主要是较少每次临时建立连接所带来的开销.初步一看,nodejs运行单线程上,它不能同时使用多个连接,乍一看是不需要连接 ...
- nodejs redis遇到的一个问题解决
v ar redis = require("redis"), client = redis.createClient({host:'tc-arch-osp33.tc', port: ...
- nodejs redis
0. install redis library for node npm install redis 1.node command example > var _redis = require ...
- 使用NODEJS+REDIS开发一个消息队列以及定时任务处理
作者:RobanLee 原创文章,转载请注明: 萝卜李 http://www.robanlee.com 源码在这里: https://github.com/robanlee123/RobCron 时间 ...
- Ubuntu安装Python2.7,nodejs,Redis
安装Python2.7 sudo add-apt-repository ppa:fkrull/deadsnakes-python2.7sudo apt-get update sudo apt-get ...
- nodejs redis 发布订阅机制封装
最近项目使用redis,对publish 和 subscribe的使用进行了了解,并进行了封装. var config = require('../config/config'); var log = ...
- 如何使用NODEJS+REDIS开发一个消息队列
作者: RobanLee 原创文章,转载请注明: 萝卜李 http://www.robanlee.com MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应 ...
- Nodejs Redis 全部操作方法
安装 npm install redis --save demo var redis = require('redis'); var client = redis.createClient('637 ...
- websocket+nodejs+redis实现消息订阅和发布系统
其实我很懒,不想打字,代码已上传到码云,请点此处. 有疑问请一下扫描二维码,加我微信:
随机推荐
- Web服务端性能提升实践
随着互联网的不断发展,日常生活中越来越多的需求通过网络来实现,从衣食住行到金融教育,从口袋到身份,人们无时无刻不依赖着网络,而且越来越多的人通过网络来完成自己的需求. 作为直接面对来自客户请求的Web ...
- tensorflow VocabularyProcessor
from tensorflow.contrib import learn import numpy as np vocab_process = learn.preprocessing.Vocabula ...
- Struts全局跳转
1.在struts配置文件中配置一个全局跳转 2.然后关联一个jsp文件 4.关联好以后会出现如图所示页面 在代码中会有如图所示的代码增加 5.然后再action中设置跳转
- [笔记] print函数进阶
1.1print(values=None,sep='',end='\n',file=sys.stdout,flush=False) 参数: values:输出到控制台的string sep:设置输 ...
- CSS选择器详解(一)常用选择器
目录 类型选择器 类选择器 ID选择器 伪类 伪元素 类型选择器 通过类型选择器可以选择某一类型的html标签,并对其使用样式. 语法: selector {property1: value; pro ...
- C#中的序列化和反序列化是什么、有什么作用、使用方法详解
什么是序列化与反序列化??? 序列化和反序列化,我们可能经常会听到,其实通俗一点的解释,序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是在适当的时候把这个文件再转化成原来的对象使用. ...
- [转] Hadoop管理员的十个最佳实践
前言 接触Hadoop有两年的时间了,期间遇到很多的问题,既有经典的NameNode和JobTracker内存溢出故障,也有HDFS存储小文件问题,既有任务调度问题,也有MapReduce性能问题.遇 ...
- VS中调试查看DataTable和DataSet时未能加载此自定义查看器解决方法
在网上找了几个方法,感觉不太实用,最后自己找到了问题所在 VS2017中选择调试-选项-常规中的使用托管兼容模式取消勾选.之后就可以了
- BG.VM--CentOS
1. CentOS 更改IP 局域网配置: 在虚拟机的[网络]连接方式中选择:仅主机(Host-Only)网络. 路径:vim /etc/sysconfig/network-scripts/ifcfg ...
- 对象的深度拓展$.extend(true,{},a,b),深入理解,小心陷阱
转载:https://www.cnblogs.com/DJeanWeb/p/4388689.html $.extend一般情景下,使用深度拓展两个对象时,我们想要的效果是,b对象覆盖掉a对象中存在的所 ...