1.什么是nosql?
nosql (not only sql): 不仅仅是sql. 它是对所有非关系型数据库的一种统称
2.nosql和rdbms区别?
RDBMS
- 高度组织化结构化数据:
- 结构化查询语言(SQL) 支持sql语句 select * from t_user;
- 数据和关系都存储在单独的表中。---记录和关系
- 数据操纵语言DML [增删改],数据定义语言 DDL [表结构的修改]
- 严格的一致性
- 基础事务 【mysql支持事务--ACID】
NoSQL
- 代表着不仅仅是SQL
- 没有声明性查询语言 [不支持select 语句]
- 键 - 值对存储,【类似于map】
- 不支持事务的一致性
- 非结构化和不可预知的数据。 可以是很多类型。
3.什么是redis?
redis它是一款使用C语言编写的软件,而且它以key-value形式存储,它的计算在内存中,而它的存储在磁盘中。 它提供了多种语言的API.
4.安装redis
(1)安装c语言的查插件
yum install gcc-c++
(2)下载redis软件
(3)把redis压缩包上传到linux指定目录下
(4)解压redis
tar -zxvf 文件
(5)进入解压目录 并编译源码
make
(6)安装redis ---配置环境变量
make install
(7)启动redis服务
redis-server redis.conf[redis的配置文件]
(8)客户端连接redis=
redis-cli -h[连接redis服务的ip] -p[连接redis的端口号]
---------------------------------------------------
上面如果不使用-h和-p 默认为127.0.0.1 6379
5.redis.conf 配置
1.设置redis后台启动
进入redis.conf配置文件
# 设置redis是否为后台启动---改为yes. 如果像关闭redis需要通过关闭进程来关闭.
# kill -9 进程号
# ps -ef | grep redis
daemonize yes
2.修改端口号
# 修改redis的端口号
port 6380
总结:
1.启动redis服务,redis-server redis.conf
2.客户端连接redis服务。
【1】reids -cli
【2】图形化客户端。 (这个需要现在,图形客户端软件)
3。修改redis.conf文件中相关的内容。
【1】设置后台启动,进入到redis.conf配置文件 找到daemonize no并修改为 daemonize yes
【2】修改redis的端口号。
【3】设置redis 允许远程连接
【4】开启/关闭保护策略
6.redis中常用的命令
6.1关于数据库常用命令
select 选择库 默认为第一个库 默认库数量16个 0-15 ,也可以修该默认库数量
flushdb 清空当前库的内容
flushall 清空所有库的内容
set key value 为当前库 添加数据 以键值对形式 例:set name 熊大
6.2关于key命令
keys * 查看当前库中的所有 key
del key 指定删除 key
exists key 判定指定的key是否存在
expire key seconds 设置指定的key的过期时间 单位秒
ttl key 查看当前key的有效时间 -1代表永久不过期
7.redis支持的数据类型
7.1字符串类型、
redis中它的value类型为字符串类型,该类型最多可以存放512M的内容。
字符串 相关命令
set key value 存储字符串类型的数据。这里的key不允许重复
get key 根据key 获取相对应的value值
mest key value key2 value2 . 可以存储多个key-value
mget key value key2 value2 获取多个key 对用的value值
setnx key value 指定的key 是否存在 不存在 就存入,则不存入
incr key 指定的key value递增 只限于整数类型
decr key 指定 key value递减 限于整数类型
decrby key number 指定 key 递减 number指定递减的 数
7.2hash类型命令
hset key field value 存放hash类型数据 例:hset key1 name 熊大 age 12 gender 男
het key field 获取对应field 字段值
hgetall key 获取key对应hash数据内容
hkeys key 获取hash中所有 field 字段
hvals key 获取hash中的所有 value值
7.3list列表类型
它的value值为一个列表队列类型,列表中的元素允许重复。
key对应的value类型为一个列表类型。
lpush key value1 value2 value3.。。。 从左边存放列表数据
lpop key 【count】 从左边获取数据
lrange ke start end 从左边获取指定范围的元素 -1表示最后一个数据
7.4set和sortedset类型的常用命令
7.4.1set集合命令
redis中的value类型为set集合类型,
特点:无序且不能重复的数据
sadd key element element...... 存放set类型的元素。
smebers key 获取指定key对应的所有元素。
srandmenmber key [number] 随机获取集合中一个或多个元素
sinter key key 求多个集合的交集
spop key 随机移除一个或多个元素
7.4.2 sorted set集合命令
它和set 区别就是再添加元素是需要指定一个分数,给分数用来排序的
zadd key element score element score 添加有序集合
zrang key start end 从分数小到大的顺序获取集合中的元素
zrevange key start end 返回有序集中指定区间内的成员,通过索引,分数从高到低