SQL与NoSQL

SQL NoSQL
数据结构 结构化:存储的数据结构清晰明了 数据结构随意
数据关联 关联的 无关联的
查询方式 统一的SQL查询 非SQL的,各个数据库格式不统一
事务特性 ACID(原子性、一致性、隔离性、持久性) BASE(只满足基本一致性)
存储方式 磁盘 内存
扩展性 垂直 水平
使用场景
1. 数据结构固定
1. 业务对数据安全性、一致性要求较高

1. 数据结构不固定
1. 对一致性、安全性要求不高
1. 对性能要求高

NoSQL四种存储格式

  1. 键值类型:redis
  2. 文档类型:MongoDB
  3. 图类型:Neo4j
  4. 列族类型:HBase

    Redis

    基于内存的键值型NoSQL数据库

    特征

  5. 支持存储多种类型的数据

  6. 单线程,每个命令具备原子性
  7. 低延迟,速度快(基于内存、IO多路复用、良好的编码)
  8. 支持数据持久化,定期保存到磁盘
  9. 支持主从集群、分片集群
  10. 支持多语言客户端

Linux安装Redis

  1. 安装c语言环境:yum -y install gcc-c++
  2. redis安装包上传到/usr/soft目录
  3. 解压到soft目录:tar -xvf **redis.tar.gz**
  4. 进入redis目录(soft目录中):cd redis
  5. 编译:make
  6. 安装到/usr/local/redis目录下:make PREFIX=/usr/local/redis install
  7. 把sentinel.conf和 redis.conf复制到/usr/local/redis/bin:cp redis.conf sentinel.conf /usr/local/redis/bin
  8. 查看安装路径:bin目录下:pwd
  9. Linux防火墙开放6379端口(bin目录下)
    1. 添加端口:firewall-cmd --add-port=6379/tcp --permanent
    2. 重新加载:firewall-cmd --reload
    3. 查看开放的端口:firewall-cmd --list-all

启动Redis

  1. 前端启动(bin目录下):./redis-server
  2. 后端启动(bin目录下):
    1. 允许后台运行:进入vim redis.conf 修改为daemonize yes
    2. 设置允许访问的ip:bind 127.0.0.1 192.168.12.136redis IP与Linux IP
    3. 启动:./redis-server redis.conf

进入Redis

bin目录下:./redis-cli

关闭Redis

  1. bin目录下:./redis-cli shutdown

  1. Redis里:shutdown

常用配置(redis.conf中)

配置文件路径:cd /usr/local/redis/bin 进入配置文件修改:vi redis.conf

  1. 设置监听的地址:bind 0.0.0.0可以任意IP访问。默认为127.0.0.1只能本地访问
  2. 后台运行:daemonize yes
  3. 设置访问密码:requirepass 123

    其他配置

  4. 监听端口:port 6379

  5. 工作目录,默认为当前目录:dir .
  6. 数据库数量,默认为1:databases 1
  7. redis最大内存:maxmemory 512mb
  8. 日志文件,默认为空,不记录日志:logfile "redis.log"

常用命令(bin目录下)

  1. 指定ip :redis-cli -h 127.0.0.1
  2. 指定端口:redis-cli -h 6379
  3. 指定密码:
    1. bin目录下:redis-cli -a 123
    2. Redis里:AUTH 用户名 密码 可以只写密码
  4. 测试连接:ping成功会返回pong

开机自启

  1. 新建一个系统服务文件并配置: ```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

```

  1. 重载系统服务:systemctl daemon-reload/

全局命令:

  1. 启动:systemctl start redis
  2. 停止:systemctl stop redis
  3. 重启:systemctl restart redis
  4. 查看状态:systemctl status redis
  5. 开机自启:systemctl endable redis

Redis命令:

Key

  1. del