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.136
redis 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