NoSql
1、什么是NoSql?
NoSQL(Not only SQL)是对不同于传统的关系数据库的数据库管理系统的统称,即广义地来说可以把所有不是关系型数据库的数据库统称为NoSQL。
NoSql数据库专门构建用于特点的数据模型,并且具有灵活的架构来构建现代应用程序。NoSql数据库使用各种数据模型类访问呵管理数据。这些类型的数据库专门针对需要大数据量、低延迟和灵活数据模型的应用程序进行优化,这是通过放宽其他数据库的某些数据一直性限制来实现的。
2、nosql和rdbms的区别?
RDBMS
- 高度组织化结构化数据:
- 结构化查询语言(sql) 支持sql语句 select * from table_name
- 数据呵关系都存储在单独的表中。---记录和关系
- 数据操纵语言DML【增删改】,数据定义语言DDL【表结构的修改】
- 严格的一致性
- 基础事务【mysql支持事务--ACID】
NoSql
- 代表着"不仅仅是SQL"
- 没有声明性查询语言【不支持select语句】
- 键 - 值对存储,【类似于map】
- 不支持事务的一致性
- 非结构化和不可预知的数据。可以是很多类型
3、NoSql产品有哪些?
Redis:---java开发
mongodb:--前端
hbase:----大数据
4、什么是redis?
Redis(Remote Dictionatry Server),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并且提供多种语言的API。
5、如何安装redis?
(1)安装C语言的插件
yum install gcc-c++
(2)下载redis软件
(3)把redis压缩包上传到linux指定目录下
我这里使用的软件是FlanShell
(4)解压redis
cd redis解压后的目录
tar -zxvf XXX.tar.gz
(5) 进入解压目录 并编译源码
cd redis-7.2.0 进入解压目录
make 编译源码
(6) 安装redis----帮你配置环境变量
make install
(7)启动redis服务
redis-server redis.conf[redis的配置文件]
(8)客户端连接redis(注意不能关闭redis服务)
redis-cli -h[连接redis服务的ip] -p[连接redis的端口号]
---------------------------------------------------
上面如果不使用-h和-p 默认为127.0.0.1 6379
6、redis.conf配置
1、设置redis后台启动
# 设置redis是否为后台启动---改为yes ,如果想关闭redis需要通过关闭进程来关闭。
#kill -9 进程号
daemonize yes
ps -ef | grep redis
2、修改端口号。
注意:启动之前注意需要重启redis进程
# 修改端口号
port 3333
7、安装redis图形化客户端软件
等价于:mysq的navicat,可以通过图像化对redis进行操作。
修改redis允许远程连接。 (修改配置后记得重启redis)
# 设置允许所有的Ip连接该redis
bind * -::*
# 设置是否开启保护模式 --- yes开启 no表示关闭
protected-mode no
连接成功后显示:
默认redis提供了16个库。如果想修改库的个数。
# 修改redis数据库的个数--默认不改
databases 16
8、redis中常用的命令
8.1 关于数据库的命令
select 选择库 === 默认为第一个库 0~15
flushdb === 清空当前库的内容
flushall === 清空所有库的内容
8.2关于key的命令
keys * : 查看当前库中所有的key
del key key key ... :删除指定的key
exists key :判断指定的key是否存在。
expire key seconds:设置指定的key的过期时间单位 s
ttl key:[ttl time to live] 查看当前key的有效时间。-1 表示永不过期。
9、redis支持的数据类型
使用最多的类型为:String字符串类型、list类型、sets集合类型、Hashes哈希类型,SortedSet有序集合类型。
9.1、字符串类型
https://www.redis.net.cn/order/
redis中它的value类型为字符串类型,该类型最多可以存放512M的那内容
字符串类型相关的命令
set key value:存储字符串类型的数据。这里的key不允许重复
get key:根据key获取对应的value值。
mset key value key value ... :存储多个key-value值
mget key key key ... 获取多个key对应的value
sentx key value:如果指定的key存在,则不存入,如果不存在则存入
incr key:为指定的key递增。---只能对整型。 大多用于点赞 收藏
decr key:为指定的key递增
decrby key number:为指定的key递减相应的值
9.2、hash的数据类型
表示redis中它的value类型为bash数据类型。hash类型特点:他的value也是一个键值对的形式。
hash类型相关的命令
hset key field value : 存放hash类型的数据
hget key field:获取key对应field内容
hgetall key:获取key对应hash数据内容
hkeys key:获取hash中所有的field字段
hvalue key:获取hash中所有的value值
9.3、List列表类型
它的value值为一个列表类型,列表中的元素允许重复。key对应的value类型为一个列表类型。
lpush key value value value ...:从左存放数据
rpush key value value value ...:从右存放数据
lpop key [count]:从左边取出元素。
rpop key [count]:从右边取出元素
lrange key start end; 从左边获取指定范围的元素 -1:表示最后一个元素