1 NoSQL是什么
1.1 NoSQL数据库概述
NoSQL(NoSQL = Not Only SQL ),意即”不仅仅是SQL“,泛指非关系型的数据库。
NoSQL 不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。
- 不遵循SQL标准。
- 不支持ACID
- 远超于SQL的性能。
- 数据无关联
- 储存在内存当中
1.2 NoSQL适用场景
- 对数据高并发的读写
- 海量数据的读写
- 对数据高可扩展性的
1.3 NoSQL不适用场景
- 需要事务支持
- 基于sql的结构化查询存储,处理复杂的关系,需要即席查询
- 用不着sql的和用了sql也不行的情况,请考虑用NoSql
1.4 常见的非关系型数据库
- Redis(数据都在内存中,支持持久化,主要用作备份恢复除了支持简单的key-value模式,还支持多种数据结构的存储,比如 list、set、hash、zset等。一般是作为缓存数据库辅助持久化的数据库)
- MongoDB(高性能、开源、模式自由(schema free)的文档型数据库数据都在内存中, 如果内存不足,把不常用的数据保存到硬盘虽然是key-value模式,但是对value(尤其是json)提供了丰富的查询功能支持二进制数据及大型对象可以根据数据的特点替代RDBMS,成为独立的数据库。或者配合RDBMS,存储特定的数据)
1.5 NoSQL的数据结构
- 键值类型(redis)
- 文档类型(MongoDB)
- 列类型(HBase)
- Graph类型(Neo4j)
2 初识Redis
redis概述
Redis诞生于2009年全称是Remote Dictionary Server,远程词典服务器,是一个基于内存的键值型NOSQL数据库
特征:
- 键值 (key-value)型,value支持多种不同数据结构,功能丰富、
- 单线程,每个命令具备原子性
- 低延迟,速度快(基于内存、I0多路复用、良好的编码)。
- 支持数据持久化(Redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。)
- 支持主从集群、分片集群
- 支持多语言客户端
3 Redis安装
Redis官方网站 | Redis官方网站 |
---|---|
http://redis.io | http://redis.cn/ |
安装版本
6.2.1 for Linux(redis-6.2.1.tar.gz)
安装步骤
- 准备工作:下载安装最新版的gcc编译器
- 安装C 语言的编译环境 :yum -y install gcc
- 测试 gcc版本 :gcc --version
- 下载redis-6.2.1.tar.gz放/opt目录
- 解压:tar -zxvf redis-6.2.1.tar.gz
- cd redis-6.2.1
- 执行make(只是编译好)
- 如果没有准备好C语言编译环境,make 会报错—Jemalloc/jemalloc.h:没有那个文件
解决方案:安装gcc后,运行make distclean,然后再进行make
-
在redis-6.2.1目录下再次执行make命令(只是编译好)
-
跳过make test 继续执行: make install
安装目录
查看默认安装目录:/usr/local/bin
redis-benchmark:性能测试工具,可以在自己本子运行,看看自己本子性能如何
redis-check-aof:修复有问题的AOF文件
redis-check-dump:修复有问题的dump.rdb文件
redis-sentinel:Redis集群使用
redis-server:Redis服务器启动命令
redis-cli:客户端,操作入口
前台启动(不推荐)
前台启动,命令行窗口不能关闭,否则服务器停止
会阻塞整个会话窗口,窗口关闭或者按下CTRL + C 则Reis停止。不推荐使用。
后台启动(推荐)
-
备份redis.conf
- 在/root目录下创建myredis目录
- mkdir myredis
- 拷贝一份redis.conf到myredis目录
- cp /opt/redis-6.2.1/redis.conf /root/myredis
-
修改配置
- daemonize no改成yes(L247)让服务在后台启动(通过\搜索你要修改的配置)
-
Redis启动
- redis-server redis.conf
-
通过该命令ps -ef|grep redis,查看redis是否在后台运行
-
Redis关闭
-
单实例关闭:redis-cli shutdown
-
也可以进入终端后关闭当前实例
-
多实例时关闭指定实例,指定端口关闭:redis-cli -p 6379 shutdown
-
redis开机自启动
我们也可以通过配置来实现开机自启。
首先,新建一个系统服务文件:
vi /etc/systemd/system/redis.service
内容如下:
[Unit]
Description=redis-server
After=network.target[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /opt/redis-6.2.1/redis.conf
#这里写你自己的文件配置的目录
PrivateTmp=true[Install]
WantedBy=multi-user.target
然后重载系统服务
systemctl daemon-reload
现在我们可以用下面的命名来操作redis
#启动
systemctl start redis
#停止
systemctl stop redis
#重启
systemctl restart redis
查看状态
systemctl status redis
执行下面的命令,可以让redis开机自启
systemctl enable redis
redis命名行客户端
Redis安装完成后就自带了命令行客户端: redis-cli,使用方式如下:
redis-cli [option] [commonds]
其中常见的options有:
-h 127.0.0.1
:指定连接的redis节点的ip地址,默认127.0.0.1-p 6379
:指定要连接的redis节点的端口,默认是6379-a 123321
:指定redis的访问密码
其中的commonds就是Redis的操作命令,例如:
ping
:与redis服务端做心跳测试,服务端正常会返回pong
不指定commond时,会进入redis-cli
的交互控制台:
可以登录后连接
图形化桌面客户端
我这边使用 Another Redis Desktop Manager
GitHub上的大神编写了Redis的图形化桌面客户端,地址: https://github.com/uglide/RedisDesktopManager
不过该仓库提供的是RedisDesktopManager的源码,并未提供windows安装包。
在下面这个仓库可以找到安装包: https://github.com/lework/RedisDesktopManager-Windows/releases