Redis
数据库的分类
1.关系型数据库:关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。在关系型数据库中,对数据的操作几乎全部建立在一个或多个关系表格上,通过对这些关联的表格分类、合并、连接或选取等运算来实现数据库的管理。如:MySQL、Oracle、SQL Server。
非关系型数据库:NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”泛指非关系型的数据库,区别于关系数据库,它们不保证关系数据的ACID特性。
2.NoSQL
分类:
(1)键值(Key-Value)存储数据库:这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。如:Redis
(2)列存储数据库:这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:Cassandra, HBase, Riak
(3)文档型数据库 文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。
(4)图形(Graph)数据库 图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上
特点
开源免费
存在缓冲(内存)中,查询速度快
可以存储 基本数据类型、对象 和 集合 等格式
不支持SQL
没有多表关系
不支持事务
存储格式为key-value格式
Java操作Redis数据库
导入jedis-2.9.0.jar
新建redis:Jedis jedis = new Jedis(“localhost”,6379)
关闭redis:jedis.close()
导入commons-pool2-2.2.jar
新建redis连接池:JedisPoolConfig config = new JedisPoolConfig()
配置连接池:JedisPool jedisPool = new JedisPool(config,“localhost”,6379)
配置资源:Jedis jedis = jedisPool.getResource()
Redis数据类型及命令
string字符串类型
set key value//增
get key //查
del key //删
hash哈希类型-Map
hset mapname key value //增
hget mapname key //查(查询所有:hgetall mapname)
hdel mapname key //删
list列表类型-LinkedList
lpush key value //左增
rpush key value//右增
lrange key start end//查
lpop key //左删
rpop key //右删
set集合类型
sadd key value//增
smembers key//查
srem key value//删
sortedset有序集合类型
zadd key score value//增
zrange key start end//查
zrange key 0 -1 widthscore//查
zrem key value//删
命令
keys *//查询所有键
type key//获取键对应的value的类型
del key//删除指定key及value