Node.js操作Redis的简单示例

Redis是一个key-value类型的数据库,而key全部都是字符串,value可以是集合、hash、list等等。

Redis是通过MULTI/DISCARD/EXEC/WATCH这4个命令来实现事务功能。对事务,我们必须知道事务安全性是一个非常重要的。

事务提供了一种“将多个命令打包,然后一次性、按顺序执行”的机制,并且在事务执行期间不会中断——意思就是在事务完成之前,客户端的其他命令都是阻塞状态。

var redis = require("redis");
var client = redis.createClient();

client.on("error", function(err) {
	console.log("Error " + err);
});

client.on("connect", runSample);

function runSample() {

	// 设置一个字符串类型的值,返回值:OK
	client.set("string key", "Hello World", function(err, reply) {
		console.log(reply.toString());
	});

	// 获取一个字符串类型的值,返回字:value
	client.get("string key", function(err, reply) {
		console.log(reply.toString());
	});

	// 另外一种方式获取一个字符串类型的值,返回字:value
	var multiCmd = client.multi();
	multiCmd.get("string key");
	multiCmd.exec(function(err, reply) {
		console.log(reply.toString());
	});

	// 设置失效时间
	client.expire('string key', 3);

	// 有效时间验证
	var myTimer = setInterval(function() {
		client.get('string key', function(err, reply) {
			if (reply) {
				console.log('I live: ' + reply.toString());
			} else {
				clearTimeout(myTimer);
				console.log('I expired');
				client.quit();
			}
		});
	}, 1000);

	// 检查一个值在失效之前存留了多长时间
	var myTimer = setInterval(function() {
		client.get('string key', function(err, reply) {
			if (reply) {
				console.log('I live: ' + reply.toString());
				client.ttl('string key', writeTTL);
			} else {
				clearTimeout(myTimer);
				console.log('I expired');
				client.quit();
			}
		});
	}, 1000);

	// 集合操作
	var key = "set key";
	client.sadd(key, uid);
	client.sadd(key, "a");
	client.sadd(key, "b");
	// 获取key集合中是否包含“1”,如果包含,返回1,否则返回0
	client.sismember(key, "a", showData);

	//client.quit();
}

function writeTTL(err, data) {
	console.log("I live for this long yet: " + data);
}

function showData(err, data) {
	if (err) {
		console.log("err:" + err);
	} else {
		console.log("reply:" + data);
	}
}

参考资料:

Redis命令参考

在 Node.js 中读写 Redis 的数据(失效时间和TTL)

Github node_redis

Redis设计与实现

文档信息

  • 最后修改时间:2014年06月21日 02:07

Node.js操作Redis的简单示例,布布扣,bubuko.com

时间: 2024-10-12 14:22:26

Node.js操作Redis的简单示例的相关文章

Node.js开发入门—Angular简单示例

在"使用AngularJS"中,我们提到了如何在Node.js项目中引入AngularJS,这次提供一个非常简单的示例,演示AngularJS里的指令.数据绑定.服务等内容. 我准备做Web后台管理系统,不同的管理员会有不同的权限,管理员登录后看到的菜单和他的权限有关,能看到什么,是动态生成的(类似RBAC).本文的示例从这个项目而来,当然,现在还是最简单的. 如果没有特别说明,后面我们用到的示例都使用express generator生成. Angular小demo 先搞起来吧. 第

[Node.js]操作redis

摘要 在实际开发中,免不了要操作mysql,mongodb,redis等数据存储服务器.这里先简单介绍如何操作redis. 一个例子 关于redis服务端的安装这里不再介绍,重点不在这里.感兴趣的可以自行安装. 对于一个新的模块,我们需要在我们的项目中先安装redis模块才能用. 命令 cnpm install redis 新建一个redis.js的文件,代码如下: //引入redis var redis = require("redis"); //创建redis客户端 var cli

Nodejs学习笔记(七)--- Node.js + Express 构建网站简单示例

目录 前言 新建项目.建立数据库以及其它准备工作 新建express + ejs 项目:sampleEjs 创建数据库 修改package.json文件,安装session和mysql模块 样式和JQuery文件 清理项目冗余文件,并添加监听 规划路由,并新建相关文件 实现登录和注册需要的数据访问方法 注册 登录 首页 安全退出 写在之后 前言 上一篇学习了一些构建网站会用到的一些知识点   http://www.cnblogs.com/zhongweiv/p/nodejs_express_we

node.js与redis

最近在学习node创建项目,因为一直在用像mysql这样的结构型数据库,想学点新的东西,所以就把数据库换成了redis.redis是非关系型数据库.那关系型数据库跟非关系型数据库有什么区别呢?简单地说,就是一个有表的概念,一个没有.具体的区别自行Google吧.这里我主要介绍一下node.js与redis之间建立连接的过程,就是说如何早node:里面操作redis'数据库.因此,默认你已经装好这两个软件了. 第一步,我们需要打开redis的服务器.打开命令行,切换到redis安装目录,输入命令:

Node.js学习笔记(3) - 简单的curd

这个算是不算完结的完结吧,前段时间也是看了好久的Node相关的东西,总想着去整理一下,可是当时也没有时间: 现在看来在整理的话,就有些混乱,自己也懒了,就没在整理,只是简单的记录一下 一.demo的简单介绍 这次demo,只涉及到简单的curd操作,用到的数据库是mongo,所以要安装mongo数据库,数据库连接驱动是mongoose: 当然关于mongo的驱动有很多,比如mongous mongoskin等:(详见http://cnodejs.org/topic/4f4ca8e0940ce2e

安装使用Mongoose配合Node.js操作MongoDB的基础教程【转载】

这篇文章主要介绍了安装使用Mongoose来让Node.js操作MongoDB的基础教程,前端js+后端node+js操作MongoDB正是所谓最流行的一种JavaScript全栈开发方案,需要的朋友可以参考下 安装mongoose 使用express准备一个TestMongoDB项目,命令序列如下: express TestMongoDB cd TestMongoDB npm install 执行完上面的命令后,使用下面的命令安装mongoose: npm install mongoose -

node.js零基础详细教程(7):node.js操作mongodb,及操作方法的封装

第七章 建议学习时间4小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑.编写接口,最后完成一个完整的项目后台,预计共10天课程. node.js操作mangodb 创建一个用于放置今天文件的文件夹,npm init初始化一下,并创建demo1.js用于写node代码 使用 npm install mongodb,将mongodb控制模块安装到本地 在demo1.js中写

文件操作的一个简单示例

在上文介绍了C中文件操作的一些基本函数,下面给一个简单例子,完成从控制台输入一段字符串,然后将其写入文件,然后从文件中读出刚刚写入的内容,代码如下: #include <stdio.h> #include <string.h> #include <stdlib.h> const int LENGTH=80; int main(void){ char mystr[LENGTH]; int lstr=0; int mychar=0; FILE * pfile=NULL; c

node.js操作数据库之MongoDB+mongoose篇

前言 node.js的出现,使得用前端语法(javascript)开发后台服务成为可能,越来越多的前端因此因此接触后端,甚至转向全栈发展.后端开发少不了数据库的操作.MongoDB是一个基于分布式文件存储的开源数据库系统.本文为大家详细介绍了如何用node.js + mongoose 玩转MongoDB.希望能帮到有需要的人. 由于我用Mac开发,以下所有操作都是在Mac下进行. 一. 环境搭建 安装Node.js 有 node 环境的可以跳过. nodejs官网提供了 macOS 安装包,直接