NoSQL: 没有sqk语句,非关系型数据库 主流的缓存数据库
关系型数据库:对当的海量数据、高并发、高可用等支持存在一定压力
NoSQl数据库的分类;
1、K-V
键值对数据库
主流:Redis
优缺点:
优点:速度快
缺点:没有关系模式
2、列存储数据库
存储列
主流:HBase
优缺点:
优点:速度快,分布式扩展好
缺点:功能不足
3、文档型数据库
以文档形式进行存储
主流:Mongodb
查询的性能不是很高
4、图形化数据库
图形结构算法
主流:Neo4jRedis的操作
Redis的数据类型:
1、String 字符串
2、List
3、Set
4、zSet
5、Hash
Redis安装:
1、下载Redis
2、上传Redis
3、解压
tar -zxf redis-4.0.1.tar.gz
mv redis-4.0.1 redis4
4、编译
yum -y install gcc automake autoconf libtool make 安装c编译器
在解压目录内
make
5、安装
make PREFIX=/opt/java/redis6379 install
从解压目录中拷贝一份配置文件到新安装的目录的bin下
cp redis.conf /opt/java/redis6379/bin/redis.conf
6、启动
在Redis安装目录下的bin文件夹内部使用命令
/opt/java/redis6379/bin/redis-server /opt/java/redis6379/bin/redis.conf
7、修改配置文件
默认是前台启动,导致命令行无法继续
需要修改为后台启动
vim /opt/java/redis6379/bin/redis.conf
修改:
1、将bind 127.0.0.1 注释掉 #bind127.0.0.1 表示其它机器也可也访问
2、将daemonize no 设置为 daemonize yes
保存并退出
重新启动
8、连接
使用自带连接工具 安装目录下的bin文件夹内的redis-cli
/opt/java/redis6379/bin/redis-cli
Redis的配置文件说明
redis.conf
1、操作String
新增/修改内容set key value ex|px 失效时间 如果key存在就是修改。不存在就是新增
获取内容 get key
删除: del key
批量写入mset key1 value1 key2 value2 ……
批量获取
mget key1 key2 ……
获取原来的值并设置新值
getset key value
数值类型的自增
incr key 值的类型需要是数字
incrby key 数字 添加指定的值
数值类型的自减
decr key
decrby key 数字 减去指定的值
追加--字符串
append key 值
获取长度
strlen key 获取长度
替换字符串
setrange key 起始索引 需要替换的值
如果需要的替换的内容,没有超出本来的长度,那么原内容对应索引处的内容还是存在
设置带有效期的内容
setex key 时间 value
2、List操作
List是基于双链式实现的,可以用来模拟栈和队列,允许元素的内容重复添加元素从头部插入元素
lpush key value
查看集合的元素个数
llen key
获取指定索引范围的元素内容
lrange key start end
在指定元素的前后进行插入
linsert key before|after 元素的值 插入的内容
修改内容
lset key 索引 值
删除:
lrem key 删除的数量 删除的值
删除指定索引外的内容
ltrim key 起始索引 终止索引 删除指定索引之外的内容
从顶部移除并返回顶部元素内容
lpop key
添加元素,从底部追加
rpush key value
移除元素,从底部移除并返回元素内容
rpop key
从底部移除指定集合的内容添加到另一个集合的顶部
rpoplpush 第一个集合 第二个集合 模拟消息队列
lindex key 索引 获取指定索引的的内容
3、set类型
Set类型无序,要求元素内容不可重复新增元素
sadd key value
查看集合中所有元素
smembers key
删除元素
srem key value
随机删除一个元素并返回元素的内容
spop key
获取指定2个集合的不同的元素
sdiff key1 key2
将不同的元素存储到指定的集合
sdiffstore 存储不同元素的集合 key1 key2
获取交集内容
sinter key1 key2
sinterstore 存储交集内容的集合 key1 key2
获取并集内容
sunion key1 key2
sunionstore 存储并集结果的集合名称 key1 key2
移动指定元素从一个集合到另一个集合
smove key1 key2 集合内容
获取集合的元素个数
scard key
验证元素是否存在
sismember key value
随机返回一个元素
srandmember key 数量 默认返回一个
4、Hash类型
类似java的Map集合新增
hset key 字段 值
获取
hget key 字段名
批量新增
hmset key 字段 值 ……
批量获取
hmget key 字段 ……
删除
hdel key 字段
获取字段个数
hlen key
获取所有的字段
hkeys key
获取所有的值
hvals key
验证字段是否存在
hexists key 字段名
指定字段新增指定的值
hincrby key 字段名称 新增的值
获取所有包含字段和值
hgetall key