SQL与NoSQL
| SQL | NoSQL | |
|---|---|---|
| 数据结构 | 结构化:存储的数据结构清晰明了 | 数据结构随意 |
| 数据关联 | 关联的 | 无关联的 |
| 查询方式 | 统一的SQL查询 | 非SQL的,各个数据库格式不统一 |
| 事务特性 | ACID(原子性、一致性、隔离性、持久性) | BASE(只满足基本一致性) |
| 存储方式 | 磁盘 | 内存 |
| 扩展性 | 垂直 | 水平 |
| 使用场景 | 1. 数据结构固定 1. 业务对数据安全性、一致性要求较高 |
1. 数据结构不固定 1. 对一致性、安全性要求不高 1. 对性能要求高 |
NoSQL四种存储格式
- 键值类型:redis
- 文档类型:MongoDB
- 图类型:Neo4j
-
Redis
特征
支持存储多种类型的数据
- 单线程,每个命令具备原子性
- 低延迟,速度快(基于内存、IO多路复用、良好的编码)
- 支持数据持久化,定期保存到磁盘
- 支持主从集群、分片集群
- 支持多语言客户端
Linux安装Redis
- 安装c语言环境:
yum -y install gcc-c++ - redis安装包上传到
/usr/soft目录 - 解压到soft目录:
tar -xvf **redis.tar.gz** - 进入redis目录(soft目录中):
cd redis - 编译:
make - 安装到/usr/local/redis目录下:
make PREFIX=/usr/local/redis install - 把sentinel.conf和 redis.conf复制到/usr/local/redis/bin:
cp redis.conf sentinel.conf /usr/local/redis/bin - 查看安装路径:
bin目录下:pwd - Linux防火墙开放6379端口(bin目录下)
- 添加端口:
firewall-cmd --add-port=6379/tcp --permanent - 重新加载:
firewall-cmd --reload - 查看开放的端口:
firewall-cmd --list-all
- 添加端口:
启动Redis
- 前端启动(bin目录下):
./redis-server - 后端启动(bin目录下):
- 允许后台运行:进入
vim redis.conf修改为daemonize yes - 设置允许访问的ip:
bind 127.0.0.1 192.168.12.136redis IP与Linux IP - 启动:
./redis-server redis.conf
- 允许后台运行:进入
进入Redis
bin目录下:./redis-cli
关闭Redis
- bin目录下:
./redis-cli shutdown
或
- Redis里:
shutdown
常用配置(redis.conf中)
配置文件路径:
cd /usr/local/redis/bin进入配置文件修改:vi redis.conf
- 设置监听的地址:
bind 0.0.0.0可以任意IP访问。默认为127.0.0.1只能本地访问 - 后台运行:
daemonize yes -
其他配置
监听端口:
port 6379- 工作目录,默认为当前目录:
dir . - 数据库数量,默认为1:
databases 1 - redis最大内存:
maxmemory 512mb - 日志文件,默认为空,不记录日志:
logfile "redis.log"
常用命令(bin目录下)
- 指定ip :
redis-cli -h 127.0.0.1 - 指定端口:
redis-cli -h 6379 - 指定密码:
- bin目录下:
redis-cli -a 123 - Redis里:
AUTH 用户名 密码可以只写密码
- bin目录下:
- 测试连接:
ping成功会返回pong
开机自启
- 新建一个系统服务文件并配置: ```yaml [Unit] Description=redis-server After=network.target
[Service] Type=forking
redis-server安装位置和redis配置文件目录
ExecStart=/usr/local/bin/redis-server /usr/local/redis/bin/redis.conf PrivaTmp=true
[Install] WantedBy=multi-user.target
```
- 重载系统服务:
systemctl daemon-reload/
全局命令:
- 启动:
systemctl start redis - 停止:
systemctl stop redis - 重启:
systemctl restart redis - 查看状态:
systemctl status redis - 开机自启:
systemctl endable redis
Redis命令:
Key
- del
