1.数据库分类
数据库:CRUD
Old-Sql:传统的关系型数据库
典型代表:Mysql、Oracle、Sql Server、PostGreSQL
核心:
关系:一对一 一对多 多对一 多对多
E-R图(实体关系映射图)
No-Sql:Not Only SQL 泛指非关系型数据库
典型代表:Redis、MongoDB、Neo4J、Hbase
核心:
语法格式
New-SQL:各大云平台自主研发的新型数据库
典型代表:阿里云-PolarDB
核心:
应对高并发、海量数据
国产数据库:达梦
2.Redis
列存储:Hbase
文档存储:MongoDB
Key-Value:Redis
图存储:Neo4J
Redis:Redis(Remote Dictionary Server)即远程字典服务,Redis是由C语言去编写,
Redis是一款基于Key-Value的NoSQL,而且Redis是基于内存存储数据的,Redis还提供了多种持久化机制,
性能可以达到110000/s读取数据以及81000/s写入数据,Redis还提供了主从,
哨兵以及集群的搭建方式,可以更方便的横向扩展以及垂直扩展
3.Redis特点
1.Key-Value类型
2.内存存储
3.提供持久化、主从、哨兵、集群 扩展
4.开源
Redis安装:
1.Docker命令安装
1.新建文件夹,存储配置文件
mkdir -p /docker/redis/redis6379
上传redis.conf文件到文件夹
2.执行命令创建并运行容器
docker run -d —name redis6379 -p 6379:6379 -v /docker/redis/redis6379/redis.conf:/etc/redis/redis.conf redis:6.2.1 redis-server /etc/redis/redis.conf
2.客户端
RDM远程连接
4.Redis数据类型
Key-Value类型,数据类型指的是Value的数据类型
1.String:只能存储一个值<br /> 2.List:集合,可以存储多个值,参考List集合:有序、可重复、有索引<br /> 3.Set:集合,可以存储多个值,参考Set集合:无序、不可重复、无索引<br /> 4.Hash:集合,可以存储多个值,参考Map集合,键值对、键唯一、值可重复<br /> 5.SortSet(Zset):集合,可以存储多个值,参考Map<Object,Double>集合,元素唯一,分数可重复,也可以为整形或浮点型<br /> 6.Geospatial:集合,可以存储多个值,经纬度专属,地理位置信息<br /> 7.BitMap:集合,可以存储多个值,值只能是0或1,默认是0<br /> 8.HyperLogLog:函数,计算相似值
Java数据类型:
1.基本类型:栈内存存储的是值
8种
byte char short boolean int long double float
二进制:0或1
byte:8位
char=2byte
int =4byte
long=8byte
float=4byte
……
long l=8l;
float f=l;
5.Redis常用命令
http://www.redis.cn/commands.html
Redis:
主机:49.235.88.52
密码:zzjava
String的常用命令:背
set key value :设置内容,key不存在就是新增,key存在就是修改
get key :获取指定key的值
mset key value …… :同时设置多个元素
mget key …… :同时获取多个key的值
incr key :key的值自动加1
decr key :key的值自动减1
incrby key 数字 :key的值自动加数字
decrby key 数字 :key的值自动减数字
setex key times value :设置key同设置有效期,单位秒
setnx key value :设置key,如果key不存在返回1,存在返回0(分布式锁)
append key value :追加内容
strlen key :获取元素的值的长度
……
List类型的常用命令:
lpush key value ……:从头添加元素
lpop key:获取并删除第一个元素
rpush key value ……:从尾添加元素
rpop key:获取并删除最后一个元素
lindex key index:获取指定索引的元素
llen key:获取集合的元素个数
lrange key startIndex endIndex:获取指定索引范围的元素
lrem key count value:删除指定数量的元素
ltrim key startindex endindex:只保留指定索引范围,剩余全部删除
栈:lpush + lpop或者 rpush+rpop
队列:lpush+rpop或者 rpush+lpop
1.常用数据类型的命令
1.String:值单个
2.List:集合,有序、可重复、有索引
3.Set:集合,无序、不可重复,无索引
sadd key value……:新增元素,元素唯一
smembers key:获取key中所有元素
spop key:随机获取并删除
sinter key1 key2 :获取key的交集,共有
sunion key1 key2 :获取key的并集,所有
sdiff key1 key2:获取key1在key2中的差集
sismember key value:验证是否存在某个元素,存在返回1,不存在返回0
4.Hash:集合,就是Map
hset key field value:新增元素,field唯一,valuekey重复
hget key field:获取指定feild的值
hmset key field value ……:同时新增(修改)多个
hmget key field ……:同时获取多个field的值
hsetnx key field value:如果field 不存在新增,存在啥也不干
hexists key field:验证是否存在,存在返回1,不存在返回0
hgetall key:获取所有的field和value
hkeys key:获取所有的field
hvals key:获取所有的value
hdel key field:删除对应的元素
hlen key:获取元素个数
5.SortSet:集合,特殊set,类似:Map
7.Redis发布订阅
8.Redis事务
9.Jedis
