В последнее время модули аутентификации в режиме реального времени и входа в систему ASR компании использовали Redis, поэтому, пока завершаем функции, давайте организуем документацию по использованию Redis в Node.js с нуля.
1. Установите Redis локально
1.1 Адрес установки:
Официальный сайт серверного программного обеспечения Redis:redis.io/download
Серверное программное обеспечение Redis на github (бесплатно):GitHub.com/ms open tech/…
Инструмент управления рабочим столом базы данных Redis (платный):redisdesktop.com/download
1.2 Процесс установки:
- Скачал с гитхаба [win-3.2.100] версия, скачать пакет: [Redis-x64-3.2.100.msi】
- Установка в один клик до завершения установки
- Найдите путь установки и откройте redis-cli.exe в пути установки, чтобы использовать
- И введите ping, и появится PONG, указывающий на то, что соединение установлено успешно.
- Установить пароль: вы можете просмотреть пароль через config get requirepass и установить пароль через config set requirepass 123456. Однако при этом параметре пароль будет очищен после перезапуска Redis.Конечно, если это Redis на сервере, его нельзя перезапустить случайно.
- Постоянный пароль можно установить на локальном Redis, Конкретный процесс выглядит следующим образом:
- 打开 redis.windows.conf 和 redis.windows-service.conf 的两个配置文件。
- 在配置文件中找到 requirepass 这个参数。
- 在它的这个 # requirepass foobared 语句下边
- 写下你的密码:requirepass 123456
- 例:
# requirepass foobared
requirepass 123456
- 备注:只修改一个文件是不行的
- 重启 Redis 生效
- Перезапустите Редис:
- После установки пароля открытие redis-cli.exe не будет иметь разрешения на работу.
- На данный момент мы можем войти в систему следующим образом:
- 打开 cmd
- cd 到 Redis 的安装路径
- 输入指令:redis-cli.exe -h 127.0.0.1 -p 6000 -a xxx
-h: 是指地址 127.0.0.1 指的是本地,如果是远程的就写远程的地址
-p: 这边是端口号,具体看个人的配置 redis.windows.conf 里面的,默认是 6379
-a: 密码,和 -p 一样,没设置就不用写 -a了
2. Node.js подключается к Redis
2.1 Пакеты NPM
- node_redis
- GitHub: https://github.com/NodeRedis/node_redis
2.2, код подключения
- Install
npm install redis
- базовый
const redis = require("redis");
// 端口、IP、密码
let client = redis.createClient(redisPort, redisAddress, { auth_pass: redisPassword });
// set 插入
client.set('stringKey', 'stringValue');
client.set('stringKey', 'stringValue', 'EX', 10); // 可设置过期时间(单位:秒)
// get 获取
client.get('stringKey', (err, value) => {
if (err) {
console.log(err);
}
console.log(value);
});
// del 删除
client.del('stringKey');
- опубликовать подписаться
const redis = require('redis');
// 端口、IP、密码
let client = redis.createClient(redisPort, redisAddress, { auth_pass: redisPassword });
// 监听客户端连接 Redis 成功,成功后执行回调
client.on("ready", () => {
//订阅主题
client.subscribe(redisTopic);
});
// 监听客户端连接 Redis 异常,异常后执行回调
client.on("error", function (error) {
console.log(error);
});
// 监听订阅主题成功,成功后执行回调
client.on("subscribe", (channel, count) => {
console.log(`订阅频道:${channel},当前总共订阅${count}个频道。`);
});
// 监听 Redis 发布的消息,收到消息后执行回调。
client.on("message", (channel, message) => {
console.log(`当前频道:${channel},收到消息为:${message}`);
});
// 监听取消订阅主题,取消后执行回调
client.on("unsubscribe", (channel, count) => {
console.log(`取消订阅频道:${channel},当前总共订阅${count}个频道。`);
});