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. 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:集合,可以存储多个值,值只能是01,默认是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 集合,K唯一,V可重复
    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。元素唯一,无序,值:score 为double,可重复
    zadd key score value:新增元素
    zcard key:查看集合中元素个数
    zscore key value:查看元素的分数
    zrange key startIndex endIndex:获取分数升序排列的索引范围内的元素
    zrevrange key startIndex endIndex:获取分数降序排列的索引范围内的元素
    zrangebyscore key startScore endScore:获取指定分数范围的元素
    zrem key value:删除指定的元素


    6.Geo:集合,地理位置坐标,地点信息唯一,经纬度准确
    经度:longitude,纵向
    纬度:latitude,横向

    geoadd key 经度 纬度 地点信息:新增坐标
    geopos key 地点信息:获取对应的经纬度
    geodist key 地点信息1 地点信息2:获取2个地点的直线距离
    georadius key 经度 纬度 半径 单位[m,km]:获取指定位置的半径内匹配的坐标




    7.Bitmap:集合,位(0或1),默认是0,当成数组来用,小身板大容量
    setbit key 索引 值:设置内容,值只能是0或1,默认0
    getbit key 索引:获取指定索引的内容
    bitcount key:获取值为1的数量


    2.系统命令
    keys *:查看所有的key
    select 库索引:切换库
    exists key:验证是否存在key
    expire key sceonds:设置有效期,单位秒
    ttl key:查看剩余有效期
    persist key:移除有效期
    del key:删除key
    move key 数据库索引:移动到某个库索引

    6.Redis持久化

    7.Redis发布订阅

    8.Redis事务

    9.Jedis