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. Win 下 Redis 设置开机启动

    1,在redis的目录下执行(执行后就作为windows服务了) redis-server.exe --service-install redis.windows.conf 2,安装好后需要手动启动r ...

  2. AcWing 第五场周赛

    比赛链接:Here AcWing 3726. 调整数组 签到题 void solve() { int n; cin >> n; int x = 0, y = 1, c; for (int ...

  3. 打破监控壁垒,棉花厂3D可视化建设让生产加工更加智能化

    前言 现在的棉花加工行业还停留在传统的反应式维护模式当中,当棉花加下厂的设备突然出现故障时,控制程序需要更换.这种情况下,首先需要客户向设备生产厂家请求派出技术人员进行维护,然后生产厂家才能根据情况再 ...

  4. 一、redis单例安装(linux)

    系列导航 一.redis单例安装(linux) 二.redis主从环境搭建 三.redis集群搭建 四.redis增加密码验证 五.java操作redis 环境:centos7.5需要的安装包: re ...

  5. java调用百度地图接口输入名称查经度纬度

    如何注册ak号请参考https://blog.csdn.net/weixin_42512684/article/details/115843299 package manager.tool; impo ...

  6. 神经网络优化篇:详解Adam 优化算法(Adam optimization algorithm)

    Adam 优化算法 在深度学习的历史上,包括许多知名研究者在内,提出了优化算法,并很好地解决了一些问题,但随后这些优化算法被指出并不能一般化,并不适用于多种神经网络,时间久了,深度学习圈子里的人开始多 ...

  7. python进阶(6)--类

    文档目录: 一.创建类 二.使用类与实例 三.继承 ---------------------------------------分割线:正文----------------------------- ...

  8. 分享一个在线二维码生成器(基于qrcode.js开发)

    一种二维码扫描与生成的工具, 它可生成个性化二维码, 支持文本.网址.图片.短信.电话等格式及主题,提供融合码功能 演示地址 https://qrcode.gitapp.cn 关键代码 var qrc ...

  9. 使用Amber计算单点能三步走

    技术背景 Amber是一个在分子动力学中非常常用的一个软件,可以用于进行分子动力学模拟计算,可以与一些软件配合进行增强采样.这里我们简单介绍一下如何使用Amber去计算一个分子构象的单点势能值,及其对 ...

  10. C#对象二进制序列化优化:位域技术实现极限压缩

    目录 1. 引言 2. 优化过程 2.1. 进程对象定义与初步分析 2.2. 排除Json序列化 2.3. 使用BinaryWriter进行二进制序列化 2.4. 数据类型调整 2.5. 再次数据类型 ...