Node工程使用云服务器中的redis镜像做数据库
docker pull redis
添加redis镜像实例的配置
[root@VM-0-11-centos ~]# cd /home
[root@VM-0-11-centos home]# ls
mongotest
[root@VM-0-11-centos home]# mkdir redistest
[root@VM-0-11-centos home]# cd redistest/
[root@VM-0-11-centos redistest]# vi docker-compose.yml
[root@VM-0-11-centos redistest]# docker-compose up -d
使用docker-compose管家工具,编写docker-compose.yml文件进行启动配置
version: "3"
services:
redis-test:
image: "redis"
restart: always
container_name: "redis-test"
ports:
# 宿主端口:容器内端口
- 15001:6379
volumes:
#建立文件备份 宿主目录:容器目录
# redis的备份不是说一有数据就会备份的,它会按照一定的策略,自己定时持久话
- /home/redistest:/data
#远程登录redis时,需要输入密码,保证redis的安全
command: ["redis-server", "--requirepass", "123456"]
上面的配置和下面的命令是等价的
docker run -itd --restart=always --name redis-test -p 15001:6379 -v /home/redistest:/data redis redis-server --requirepass 123456
通过下面的命令,可以查看镜像启动时的日志
[root@VM-0-11-centos ~]# docker logs -f redis-test
更新镜像配置
docker-compose up -d
Redis的命令行工具redis-cli
//切换到容器中的shell终端
[root@VM-0-11-centos ~]# docker exec -it redis-test /bin/bash
root@fe27aff96dc9:/data# ls
docker-compose.yml dump.rdb
//运行redis-cli命令行工具
root@fe27aff96dc9:/data# redis-cli
//输入redis设置的安全密码
127.0.0.1:6379> auth 123456
OK
//判断redis服务是否在运行
127.0.0.1:6379> ping
PONG
//断开数据库
127.0.0.1:6379> quit
//退出容器
root@fe27aff96dc9:/data# exit
exit
redis中默认有16个“database”它们其的作用是隔离的作用,它们的区分是通过index来做
27.0.0.1:6379> select 0
OK
127.0.0.1:6379> set name jack
OK
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> set name lucy
OK
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> get name
"jack"
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> get name
"lucy"
127.0.0.1:6379[1]>
基本操作//keys 后面接正则表达式,用于查询符合条件的所有key127.0.0.1:6379> keys *
1) "test"
2) "name"
3) "test1"
4) "name1"
127.0.0.1:6379> keys test*
1) "test"
2) "test1"
//exists 查询是否存在这个key
127.0.0.1:6379> exists test1
(integer) 1
//del 删除这个key
127.0.0.1:6379> del test1
(integer) 1
127.0.0.1:6379> exists test1
(integer) 0 127.0.0.1:6379> set num 1
OK
//incr 递增
127.0.0.1:6379> incr num
(integer) 2
//decr 递减
127.0.0.1:6379> decr num
(integer) 1
hash表//hset 集合名称 key value, key value,
127.0.0.1:6379> hset city name hangzhou people 3000
(integer) 2
127.0.0.1:6379> hset city
(error) ERR wrong number of arguments for 'hset' command
127.0.0.1:6379> hgetall city
1) "name"
2) "hangzhou"
3) "people"
4) "3000"
127.0.0.1:6379> hget city people
"3000"
127.0.0.1:6379>
订阅与发送
[root@VM-0-11-centos ~]# docker exec -it redis-test redis-cli -h 127.0.0.1 -a 123456 127.0.0.1:6379> subscribe name name1
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "name"
3) (integer) 1
1) "subscribe"
2) "name1"
3) (integer) 2
1) "message"
2) "name"
3) "hello a jack"
127.0.0.1:6379> publish name "hello a jack"
(integer) 1
127.0.0.1:6379>
服务器相关
OK
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> keys *
1) "city"
2) "test"
3) "name"
4) "num"
5) "name1"
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> flushall
OK
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379>
npm i -S redis
创建工具类RedisHelper.js
const redis = require("redis");
// //存在用户名:密码时
// // format redis[s]://[[username][:password]@][host][:port][/db-number]:
// const client = redis.createClient({
// url: "redis://root:0059ssxxSS11@1.xxx.xxx.159:6379",
// });
//
// //不存在用户名时,password为鉴权密码
// const client = redis.createClient({
// url: "redis://:password1@192.168.0.1:6379",
// });
//链接配置
const options = {
url:'redis://:123456@1.15.55.28:15001'
};
const client = redis.createClient(options)
//监听错误事件
client.on("error", (err) => {
console.log("redis error", err);
});
(async ()=>{
//建立链接
await client.connect();
//写数据
await client.set("city",'hangzhou'+Date.now())
//读数据
const value = await client.get("city")
console.log("value: "+value)
//关闭链接
await client.quit() //关闭连接 quit可以确保在连接销毁之前,挂起的命令被发送到redis
// await client.disconnecting() //强制关闭连接 挂起的命令可能没有被发送到redis
})()
执行
node RedisHelper.js
const redis = require("redis");
const bluebird = require('bluebird')
const {config} = require('./Config')
//链接配置
const options = {
url:'redis://:123456@'+config.URL+":"+config.Port
};
// 使用bluebird将redis中的所有异步方法包括一层Asnyc
const client = bluebird.promisifyAll(redis.createClient(options))
//监听错误事件
client.on("error", (err) => {
console.log("redis error", err);
});
(async ()=>{
//建立链接
await client.connect();
//写数据
await client.set("city",'hangzhou'+Date.now())
//读数据
const value = await client.get("city")
console.log("value: "+value)
//关闭链接
// await client.quit() //关闭连接 quit可以确保在连接销毁之前,挂起的命令被发送到redis
// await client.disconnecting() //强制关闭连接 挂起的命令可能没有被发送到redis
})()
//添加导出方法
const getAsync = (key) => {
return new Promise((resolve, reject) => {
client.get(key)
.then((res) => {
resolve(res);
})
.catch((err)=>{
reject(err);
});
});
}
// const getValue = (key) => {
// return getAsync(key)
// }
const getValue = (key) => {
//bluebird内部提供了getAsync方法,它是把get方法封了一层Promise
return client.getAsync(key)
}
exports.getValue = getValue;
https://github.com/qishibo/AnotherRedisDesktopManager
填写主机IP,授权密码,链接名点击OK进行登录
Node工程使用云服务器中的redis镜像做数据库的更多相关文章
- 【攻略】如何在云开发中使用 Redis?
默认情况下,云开发的函数部署在公共网络中,只可以访问公网.如果开发者需要访问腾讯云的 Redis.TencentDB.CVM.Kafka 等资源,需要建立私有网络来确保数据安全及连接安全. 本文会演示 ...
- 使用Navicat连接阿里云服务器中的Mysql数据库
1.首先将阿里云服务器中的安全组添加上Mysql的端口3306,如下图所示: 步骤就是进入到阿里云的官网,点击右上角控制台,在左边选择云服务器ECS--->实例 点击图中的管理按钮,然后选择本实 ...
- 关于云服务器中tomcat配置出现的部分问题以及解决方法
问题描述:(一)tomcat的8080端口修改为80端口之后不能使用域名直接访问: (二)添加的项目不能通过域名直接访问(服务器端还待解决) 大致配置流程: 1.需要先购买合适的服务器,进行域名备案, ...
- 连接云服务器中MySql数据库遇到的问题
使用的免费的云服务器,上面只能下载MySql数据库,不过当云数据库使用绰绰有余了,也就放一些测试数据而已 而且上面只可以部署php项目,.netcore项目部署实现比较麻烦 问题如下: 下载了navi ...
- 阿里云服务器中MySQL数据库被攻击
前几天刚领了一个月的阿里云服务器玩,在里面装了MySQL,然后这几天找了个小项目练习着玩呢,就将表建在里面了. 刚访问添加员工还好好的,刚给员工分页查询呢 ,啪一下 ,很突然昂 ,就访问不了了 ,看控 ...
- 在阿里云服务器中配置JDK、tomcat、mysql
阿里云服务器搭建配置 linux命令:参考:https://www.cnblogs.com/itdansan/p/8545187.html cat 文件名: 查看文件内容 ctrl+D : 退出查看 ...
- 阿里云服务器实战(二): Linux MySql5.6数据库乱码问题
在阿里云上了买了一个云服务器, 部署了一个程序,发现插入数据库后乱码了,都成了'????'. 一开始怀疑是Tomcat7的原因 , 见文章 : http://blog.csdn.net/johnny ...
- 在阿里云服务器中安装配置mysql数据库完整教程
阿里云ECS服务器CentOS7上安装MySql服务 (可选)1.确保服务器系统处于最新状态 [root@localhost ~]# yum -y update如果显示以下内容说明已经更新完成 Rep ...
- 基于Cent os 云服务器中SVN 服务器的搭建---具体实践是可行的 一次备注便于后续查找
https://blog.csdn.net/shadowyingjian/article/details/80588544http://www.hongyanliren.com/2015m04/329 ...
- linux 【阿里云服务器】 配置 redis 的正确流程
1.前言 我的域名备案前几天通过了,这篇随笔完整的记录 redis 的安装流程 与各种 问题 的 具体解决方案. 2.操作[跟着步骤来] (1)指令cd /usr/local 进入local文件夹里面 ...
随机推荐
- JSP | Tomcat目录结构详解
前排提醒:本文不涉及如何安装 Tomcat,仅分析Tomcat目录结构. Tomcat 版本:apache-tomcat-8.5.71 Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器 ...
- AcWing 第 2 场周赛
比赛链接:Here AcWing 3626. 三元一次方程 暴力即可 void solve() { int n; cin >> n; for (int i = 0; i <= n / ...
- AtCoder Beginner Contest 176 (ABC水题,D题01BFS,E数组处理)
补题链接:Here A - Takoyaki 很容易看出 \(\frac{N + X - 1}{X} \times T\) B - Multiple of 9 给定一个很大的整数,问其是否是 \(9\ ...
- VIM 入门手册, (VS Code)
要想在VScode里使用Vim需要先行按照插件 安装 vim 插件 VS Code 中输入快捷键 shift + ctrl + x, 或直接打开 扩展安装导航 搜索 vim, 选择 Vim , 点击 ...
- 详解异步任务 | 看 Serverless Task 如何解决任务调度&可观测性中的问题
在上篇文章<解密函数计算异步任务能力之「任务的状态及生命周期管理」>中,我们介绍了任务系统的状态管理,并介绍了用户应如何根据需求,对任务状态信息进行实时的查询等操作.在本篇中我们将会进一步 ...
- 使用 Docker Compose V2 快速搭建日志分析平台 ELK (Elasticsearch、Logstash 和 Kibana)
前言 ELK 是指 Elasticsearch.Logstash 和 Kibana 这三个开源软件的组合. Elasticsearch 是一个分布式的搜索和分析引擎,用于日志的存储,搜索,分析,查询. ...
- linux 查看服务器cpu 与内存配置
转载请注明出处: 1. 通过 lscpu 命令查看 服务器的cpu 配置 显示格式: Architecture: #架构 CPU(s): #逻辑cpu颗数 Thread(s) per core: #每 ...
- Go-竞态条件-锁
1. 产生环境 多个进程(process).线程(threading)或协程(routine)存在对同一个资源访问顺序敏感(时间上的错误) 2. 概念 临界区 -- 时间上对同一资源的读写产生的数据不 ...
- Shell-函数-function
- [转帖]一图胜千言 -- SQL Server 基准测试
https://blog.51cto.com/ultrasql/2130487 文章标签基准测试文章分类SQL Server数据库阅读数1116