开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 8 天,点击查看活动详情
什么是 Redis
Redis是一种内存数据结构存储,可用作数据库、缓存和消息代理。Redis 支持字符串、列表、集合、哈希、位图等不同的数据结构。简单的 Redis 使用你的 RAM 来存储非常快的数据,但是如果你重新启动你的服务器,这些值就会消失,除非你启用 R edis persistence。好消息,Redis 默认为你启用了持久化机制(你可以根据需要禁用或配置持久化。)
安装 Redis (Linux)
*使用以下命令下载、解压缩和编译 Redis:
$ wget http://download.redis.io/releases/redis-4.0.9.tar.gz
$ tar xzf redis-4.0.9.tar.gz
$ cd redis-4.0.9
$ make
现在编译的二进制文件在src目录中可用。使用以下命令运行 Redis:
$ src/redis 服务器
您可以使用内置客户端与 Redis 交互:
$ src/redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
现在我们已经在本地机器上成功安装了Redis。在这里您可以看到我们可以与 Redis 一起使用的有用命令。它们超级简单而且很有帮助。花一些时间使用这些命令。
在 NodeJS 应用程序中使用 Redis
首先你需要通过npm安装 NodeJS 的 Redis 客户端。
npm install redis
现在在您的 NodeJS 项目中创建一个名为 redisDemo.js 的文件。
// redisDemo.js
var redis = require('redis');
var client = redis.createClient(); // 这将创建一个新客户端
默认情况下,redis.createClient() 将使用 127.0.0.1 和端口 6379。如果您有自定义的 ip 和端口使用
var client = redis.createClient(port, host);
现在,我们要监听connect事件以查看我们是否成功连接到 redis-server。我们可以像这样检查连接是否成功。
client.on('connect', **function** () {
console.log('Redis 客户端连接');
});
同样,我们要检查我们是否未能连接到 redis 服务器。好吧,我们可以为此监听错误事件。
client.on('error', function (err) {
console.log('出错了' + err);
});
当您忘记在应用程序运行之前启动redis-server时,这可能会触发。 **所以在测试这段代码之前一定要运行redis服务器。
注意:您可以使用以下命令启动、停止 redis 服务器。
/etc/init.d/redis-server 停止
/etc/init.d/redis-server 启动
让我们看看我们的代码现在是什么样子。
var redis = require('redis');
var client = redis.createClient();
client.on('connect', function () {
console.log('Redis 客户端连接');
});
client.on('error', function (err) {
console.log('出错了' + err);
});
现在,让我们看看如何在 Redis 中的键下设置一些简单的值。您可以为此使用 set() 和 get() 方法。
client.set('我的测试键', '我的测试值', redis.print);
client.get('my test key', function (error, result) {
if (error) {
console.log(error);
throw error;
}
console.log('GET result ->' + result);
});
在 client.set() 中,我们首先给出键,然后给出值。请记住 Redis 是一个键值存储。Redis 将创建一个名为 “my test key”的键, 并为该键分配值 “my test value” 。
您会看到我在 set() 方法上使用了redis.print 。 好吧,它向控制台打印“Reply: OK”,表示 Redis 保存了该值。如果你愿意,你可以省略那个论点。
现在在 get() 方法中,我们通过指定确切的键名来简单地检索我们刚刚保存的值。然后它将在控制台中打印保存的值。
现在让我们看看完整的代码。
var redis = require('redis');
var client = redis.createClient();
client.on('connect', function() {
console.log('Redis client connected');
});
client.on('error', function (err) {
console.log('Something went wrong ' + err);
});
client.set('my test key', 'my test value', redis.print);
client.get('my test key', function (error, result) {
if (error) {
console.log(error);
throw error;
}
console.log('GET result ->' + result);
});
输出结果如下
Redis client connected
Reply: OK
GET result ->my test value
结论
Redis 是非常强大的内存数据存储,我们可以在我们的应用程序中使用它。保存和获取数据非常简单,没有太多开销。有关更多用例,请参阅www.npmjs.com/package/red… ,有关更多 redis 命令,请参阅redis.io/commands 。