非关系型数据库(NOSQL)

数据与数据之间没有关联关系!!!

1、数据模型简单

2、需要灵活性更强的IT系统

3、对数据库性能要求高

4、不需要高度的数据一致性

5、对于给定key,比较容易映射复杂值的环境

CAP:

    C:Consistency    强一致性

    A:Availability    可用性

    P:Partition tolerance    分区容错性

(Zookeeper保证CP)、(Eureka保证AP)

NoSQL数据库分类

1、键值(Key-Value)存储数据库:Redis等

2、列存储数据库:HBase等

3、文档型数据库:MongoDb等

4、图形(Graph)数据库:Neo4J等

Redis命令:

del key:删除键                                                set key value:设置一个键值对

keys *:打印所有的键                                        exists key:检查key是否存在

expire key seconds:给key设置过期时间           ttl key:查看key的剩余生存时间

pttl key:以毫秒为单位返回剩余生存时间            

persist key:移除key的过期时间,永久保存

randomkey:从当前数据库返回随机一个key

rename keyOldName keyNewName:给key重新起个名字

move key database:把key移到database数据库中(相当于剪切),key的位置支持表达式

typekey:返回key的类型

    key的命名:

不要太长,也不要太短 ,可以使用  “ : ” 来进行命名,如:user:name、user:password

key的名称区分大小写!!!

Redis数据类型:

String(字符串)

String(字符串)

    二进制安全,可把文件作为字符串来存储、计数器

    取值:get key

    setnx key value:只有key不存在的时候才会把value赋值给key(可解决分布式锁)

    getrange key start end:获取key的value值,结果是从start到end结束

    getset key_name value:用于设置指定的值,并返回key的旧址,如果key不存在,返回null;

    strlen key:返回key值得长度

    incr key_name:将key中的值自增1,当没有这个key时,会先创建key,并初始化值为1

    decr key_name:将key中的值减1

    incrby key_name num:设置key自增数num

    decrby key_name num:设置key自减数num


List(列表)

Set(集合)

Sorted Set(有序集合)

hash(散列)

非常适合存储JavaBean对象

命令:

    hset key field value:存入设置值

    hget key field:取值

    hmset key field value field value...:一次给一个对象的多个属性赋值

    hmget key field field ...:一次获取多个属性的值

    hgetall key:获取key得所有属性和值

    hkeys key:获取key得所有属性

    hlen key:获取key中得属性个数

    hdel key field...:删除key中的属性field

    hincrby key field count:给key中属性的值自增count

    hexists key field:判断key中field属性是否存在

    

你可能感兴趣的:(非关系型数据库(NOSQL))