NOSQL Redis

一、NOSQL:

(非关系型的数据库)

1.High performance - 对数据库高并发读写的需求

2.Huge Storage - 对海量数据的高效率存储和访问的需求

3.High Scalability && High Availability- 对数据库的高可扩展性和高可用性的需求


二、主流的NOSQL:

键值(Key-Value)存储数据库

相关产品: Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB

典型应用: 内容缓存,主要用于处理大量数据的高访问负载。

数据模型: 一系列键值对

优势: 快速查询

劣势: 存储的数据缺少结构化

列存储数据库

相关产品:Cassandra, HBase, Riak

典型应用:分布式的文件系统

数据模型:以列簇式存储,将同一列数据存在一起

优势:查找速度快,可扩展性强,更容易进行分布式扩展

劣势:功能相对局限

文档型数据库

相关产品:CouchDB、MongoDB

典型应用:Web应用(与Key-Value类似,Value是结构化的)

数据模型: 一系列键值对

优势:数据结构要求不严格

劣势: 查询性能不高,而且缺乏统一的查询语法

图形(Graph)数据库

相关数据库:Neo4J、InfoGrid、Infinite Graph

典型应用:社交网络

数据模型:图结构

优势:利用图结构相关算法。

劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案。


三、Redis键值数据类型:

字符串类型 stringMap

散列类型 hash 值又是一个map集合Map>

列表类型 listMap>

集合类型 setMap>

有序集合类型 sortedsetMap

key不要太长,最好不要操作1024个字节,这不仅会消耗内存还会降低查找效率

key不要太短,如果太短会降低key的可读性

在项目中,key最好有一个统一的命名规范


四、Redis命令:

(1)String:

set name "itcast"

get name

del name

(2)hash:

hset myhash username haohao

hget myhash username

hdel myhash username

(3)list:

lpush mylist a b c

lpop mylist          返回并弹出第一个元素

rpop mylist          从尾部弹出元素

(4)set:

sadd myset a b c  (该key的值已有则不会重复添加)

smembers myset (获取set中所有的成员)

srem myset a b (删除set中指定的成员)

(5)通用命令:

keys * 获取所有与pattern匹配的key

del company 删除指定的key

exists compnay  判断该key是否存在,1代表存在,0代表不存在

type company 获取指定key的类型。该命令将以字符串的格式   返回。返回的字符串为string、list、set、hash,如果key不存在返回none

expire 设置过期时间:expire key 秒值


五、异常:

java.util.MissingResourceException: Can't find bundle for base name redis

(.properties)文件要放在根目录下,即src下

你可能感兴趣的:(NOSQL Redis)