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

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来做

分别是1,2,3..号“数据库”
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>

订阅与发送

新开一个终端,直接进入到redis数据库,并打开redis-cli工具
然后开启一个订阅
[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>

服务器相关

flushdb, flushall 清空数据库127.0.0.1:6379[1]> flushdb
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>
 
Node工程建立Redis链接
首先安装redis第三方库
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
使用bluebird对redis的client的所有异步方法包裹一层Promise,方便开发
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;
 Redis图形GUI工具
AnotherRedisDesktopManager
https://github.com/qishibo/AnotherRedisDesktopManager

填写主机IP,授权密码,链接名点击OK进行登录

其中的redis-demo项目

Node工程使用云服务器中的redis镜像做数据库的更多相关文章

  1. 【攻略】如何在云开发中使用 Redis?

    默认情况下,云开发的函数部署在公共网络中,只可以访问公网.如果开发者需要访问腾讯云的 Redis.TencentDB.CVM.Kafka 等资源,需要建立私有网络来确保数据安全及连接安全. 本文会演示 ...

  2. 使用Navicat连接阿里云服务器中的Mysql数据库

    1.首先将阿里云服务器中的安全组添加上Mysql的端口3306,如下图所示: 步骤就是进入到阿里云的官网,点击右上角控制台,在左边选择云服务器ECS--->实例 点击图中的管理按钮,然后选择本实 ...

  3. 关于云服务器中tomcat配置出现的部分问题以及解决方法

    问题描述:(一)tomcat的8080端口修改为80端口之后不能使用域名直接访问: (二)添加的项目不能通过域名直接访问(服务器端还待解决) 大致配置流程: 1.需要先购买合适的服务器,进行域名备案, ...

  4. 连接云服务器中MySql数据库遇到的问题

    使用的免费的云服务器,上面只能下载MySql数据库,不过当云数据库使用绰绰有余了,也就放一些测试数据而已 而且上面只可以部署php项目,.netcore项目部署实现比较麻烦 问题如下: 下载了navi ...

  5. 阿里云服务器中MySQL数据库被攻击

    前几天刚领了一个月的阿里云服务器玩,在里面装了MySQL,然后这几天找了个小项目练习着玩呢,就将表建在里面了. 刚访问添加员工还好好的,刚给员工分页查询呢 ,啪一下 ,很突然昂 ,就访问不了了 ,看控 ...

  6. 在阿里云服务器中配置JDK、tomcat、mysql

    阿里云服务器搭建配置 linux命令:参考:https://www.cnblogs.com/itdansan/p/8545187.html cat 文件名: 查看文件内容 ctrl+D : 退出查看 ...

  7. 阿里云服务器实战(二): Linux MySql5.6数据库乱码问题

    在阿里云上了买了一个云服务器, 部署了一个程序,发现插入数据库后乱码了,都成了'????'.  一开始怀疑是Tomcat7的原因 , 见文章 : http://blog.csdn.net/johnny ...

  8. 在阿里云服务器中安装配置mysql数据库完整教程

    阿里云ECS服务器CentOS7上安装MySql服务 (可选)1.确保服务器系统处于最新状态 [root@localhost ~]# yum -y update如果显示以下内容说明已经更新完成 Rep ...

  9. 基于Cent os 云服务器中SVN 服务器的搭建---具体实践是可行的 一次备注便于后续查找

    https://blog.csdn.net/shadowyingjian/article/details/80588544http://www.hongyanliren.com/2015m04/329 ...

  10. linux 【阿里云服务器】 配置 redis 的正确流程

    1.前言 我的域名备案前几天通过了,这篇随笔完整的记录 redis 的安装流程 与各种 问题 的 具体解决方案. 2.操作[跟着步骤来] (1)指令cd /usr/local 进入local文件夹里面 ...

随机推荐

  1. 数字孪生 3D 风电场,智慧风电之海上风电

    前言 截止 2021 年,全球已有 127 个国家做出了"碳中和"的承诺,能源低碳转型和实现碳中和已经成为全球共同的战略目标.根据权威机构预测,到 2050 年,可再生能源发电将占 ...

  2. python生成word文档

    python生成word文档,感觉比java生成方便很多 下面看看步骤 1.环境 pip install python-docx 2.准备一张需要插入word中的图片monty-truth.png 3 ...

  3. lighthouse性能优化分析工具使用

  4. 线性代数 · 矩阵 · Matlab | Cholesky 分解代码实现

    (搬运外网的代码,非原创:原网址 ) (其实是专业课作业,但感觉国内博客没有合适的代码实现,所以就搬运到自己博客了) 背景 - Cholesky 分解: 若 A 为 n 阶实对称正定矩阵,则存在非奇异 ...

  5. mysql 复制表结构创建表及复制表结构与数据创建表

    本文为博主原创,未经允许不得转载: 在开发过程或项目维护发布过程中,经常需要复制建表及复制表数据建表等,整理了以下四种常用的 mysql 命令. 1.  create like 复制表结构(包含索引, ...

  6. windows mysql安装及常用命令

    安装windows版本mysql只是为本地代码调试,不建议用于生产.觉得步骤麻烦也可以直接下载集成环境(如xampp),一键安装即可用.之前本地测试都用一键安装,今天换个方法玩玩,安装步骤如下: my ...

  7. [转帖]renice和nice

    https://www.cnblogs.com/qiynet/p/17555881.html 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 ...

  8. Python学习之六_同时访问Oracle和Mysql的方法

    Python学习之六_同时访问Oracle和Mysql的方法 背景 jaydebeapi 可以访问大部分数据库. 但是他有一个问题是仅能够访问一种类型的数据库. 如果同事连接两种数据库,那么就会出现问 ...

  9. [转帖]用实力诠释细节!“Java性能调优六大工具”之JDK命令行工具

    https://www.zhihu.com/people/javajia-gou-ji-zhu-44/posts   JDK命令行工具 在JDK的开发包中,除了大家熟知的java.exe和javac. ...

  10. 使用TFS CI 又想保留服务运行状态的简单方法

    最近公司使用TFS-CI的方式定期部署测试环境, 但是发现TFS-CI 运行完之后会清理agent所在的测试环境. 运行的进程都会被killed 1. 第一种方法: 本来第一反应 是使用systemd ...