redis
相关概念

redis特点
- 高性能,可持久化
- key-value结构,支持多种数据类型
- 支持事务,数据的原子性
应用场景
- 缓存(读写性能优异)
- 计数&消息系统(高并发、发布/订阅阻塞队列功能)
- 分布式回话session&分布式锁(秒杀)
redis vs mongo
- 储存方式不一样:key-value vs document
- 使用方式&可靠性不一样: MongoDB SQL & ACDI支持
- 应用场景不一样:高性能缓存 vs 海量数据分析
使用docker 安装redis
Docker-compose配置
在linux服务器中,新建/home/redistest/docker-compose.yml,并书写以下内容
| 1 | version: "3" | 
然后在当前目录运行docker-compose up -d 会自动抓取redis 并运行在15001端口
然后运行linux端口放行firewall-cmd --zone=public --add-port=15001/tcp --permanent
使用redis-cli
- 进入容器交互终端  docker exec -it redis-test /bin/bash
- 输入 redis-cli 回车
- 输入 auth 123456 // 密码登陆
- 输出OK表示成功
想从镜像终端中出来,输入exit
常用的redis命令
- ping ,如果运行正确 会返回pong 
- quit 断开当前redis 服务 
- auth 123456 // 登陆 
- select number 切换自动数据库,默认有0 - 15 
- 设置数据 - set key value 设置键值
- get key 获取键值
- incr 变量自增 例如 set index 0 ;incr inde ;// 1 计数器
- decr 递减
- keys 正则 (*所有)查看符合条件的键值
- exists key […key] 看键值是否存在 1 存在 0 不存在
- del key 删除键值 1成功 0失败
 
- 设置过期时间 - set key value ‘EX’ seconds
 
- Hash - hset obj key value 
- 就像给一个对象设置键值对一样 hset brian name "brian" hset brian age 19 brian = { name: "brian", age: 20 }- 1 
 2
 3
 4
 5
 6
 7
 8
 9
 - hgetall obj 返回对象的key value对
 - ```
 hgetall brian
 name
 brian
 age
 19
- Hmset 设置多对键值对 
- hmset brian name xxx age 19 email ueih@122- 1 
 2
 3
 4
 5
 6
 7
 - Hmget 获取多个键值
 - ```
 hmget brian name age
 xxx
 19
 
- list list操作 
- pub/sub 发布订阅 
- server命令 - client list 可以查看redis-cli连接的哪些redis-client服务 通过idle空闲时间判断当前使用的
- client kill host:port 断开
- flushdb 清空当前数据库的数据
- flushall 清空所有数据库
 
- slowlog slow log是用来记录执行时间的日子系统 
redis备份
save 命令备份(同步任务,会阻塞,使用bgsave) 会生成一个dump.rdb,quit停止服务
CONFIG get dir 找到数据存在位置,把dump.rdb放入,重启服务就可以了
Redis GUI
安装一个破解版的redis desktop manage,可以修改语言为中文,通过gui中的终端服务,可以很轻松的使用
Nodejs 集成 redis
首先安装redis npm install redis --save
redis配置示例如下
| 1 | import redis from "redis" | 
测试
| 1 | setValue("ceshi", 122333) | 
get 、set方法生产模式再次封装一下
| 1 | / set方法 | 
