MySql:关系型数据库 数据存在硬盘内
redis:非关系型数据库 数据存储在内存
使用Docker构建,安装Docker桌面版
一、配置国内代理
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
]
二、安装redis
1、使用Docker安装redis
2、命令行安装(推荐)
1.docker search redis
2.直接docker pull redis拉取镜像就行,有自己想要的版本后边加版本号,不加就是最新的;
3.docker images 查看redis安装情况
4.启动redis
docker run -d --name redis -p 6379:6379 redis:latest redis-server --appendonly yes --requirepass "123456"
5.docker ps查询启动的docker应用
6.根据5中CONTAINER中的值进入redis
docker exec -ti 8babf553b060 redis-cli
7.docker安装redis完成
查看redis密码:
进入 redis-cli
查看现有的redis密码:config get requirepass
设置redis密码config set requirepass ***
(error) NOAUTH Authentication required.报错
auth ** 你的密码
四、在nodejs express使用redis
redis4.0语法(推荐)支持Promise语法
npm install redis --save
const redis = require('redis')
;(async () =>{
const redisClient = redis.createClient({
url: 'redis://username:password@ip:port/db_number'
/*
* redis://[[username][:password]@][host][:port][/db-number]
* 写密码redis://:123456@127.0.0.1:6379/0
* 写用户redis://uername@127.0.0.1:6379/0
* 或者不写密码 redis://127.0.0.1:6379/0
* 或者不写db_number redis://:127.0.0.1:6379
* */
});
redisClient.on('ready', () => {
console.log('redis is ready...')
})
redisClient.on('error', err => {
console.log(err)
})
await redisClient.connect() // 连接
/* 增 改*/
const status = await redisClient.set('key', 'value') // 设置值
console.log(status )
/* 查 */
const value = await redisClient.get('key') // 得到value 没有则为null
console.log(value )
/* 删 */
const num = await redisClient.del('key') // 0 没有key关键字 // 1删除成功
console.log(num )
await redisClient.quit() // 关闭
})();
redis3.0语法
npm install redis@3.1.2 --save
const redis = require('redis')
const redisClient = redis.createClient(port, 'ip', {auth_pass: "password"})
redisClient.on('ready', () => {
console.log('redis is ready...')
})
redisClient.on('error', err => {
console.err(err)
})
/* 增 改*/
redisClient.set("key", "value", redis.print)
/* 删 */
redisClient.del("key", redis.print)
/* 查 */
redisClient.get("key", (err, val) => {
if(err){
console.err(err)
return
}
console.log('value:', val)
})
redisClient.quit()