1、Redis和nosql简介,api调用
14.1/ nosql介绍
NoSQL:一类新出现的数据库(not only sql),它的特点:
1、 不支持SQL语法
2、 存储结构跟传统关系型数据库中的那种关系表完全不同,nosql中存储的数据都是KV形式
3、 NoSQL的世界中没有一种通用的语言,每种nosql数据库都有自己的api和语法,以及擅长的业务场景
4、 NoSQL中的产品种类相当多:
a)Mongodb 文档型nosql数据库,擅长做CMS系统(内容管理系统)
b)Redis 内存数据库,数据结构服务器,号称瑞士军刀(精巧),只要你有足够的想象力,它可以还给你无限惊喜
c)Hbase hadoop生态系统中原生的一种nosql数据库,重量级的分布式nosql数据库,用于海量数据的场景
d)Cassandra hadoop生态系统中原生的一种分布式nosql数据库,后起之秀
NoSQL和SQL数据库的比较:
1、适用场景不同:sql数据库适合用于关系特别复杂的数据查询场景,nosql反之
2、“事务”特性的支持:sql对事务的支持非常完善,而nosql基本不支持事务
3、两者在不断地取长补短,呈现融合趋势
14.2/ redis介绍
14.2.1 简述
Redis是一个高性能的kv对缓存和内存数据库(存的不像mysql那样的表)
Redis的存储结构就是key-value,形式如下:
注: redis中的value内部可以支持各种数据结构类型,比如可以存入一个普通的string,还可以存list,set,hashmap,sortedSet(有序的set)
14.2.2 redis应用场景
A、用来做缓存(ehcache/memcached)——redis的所有数据是放在内存中的(内存数据库)
B、可以在某些特定应用场景下替代传统数据库——比如社交类的应用
C、在一些大型系统中,巧妙地实现一些特定的功能:session共享、购物车
只要你有丰富的想象力,redis可以用在可以给你无限的惊喜…….
14.2.3 redis的特性
1、redis数据访问速度快(数据在内存中)
2、redis有数据持久化机制(持久化机制有两种:1、定期将内存数据dump到磁盘;2、aof(append only file)持久化机制——用记日志的方式记录每一条数据更新操作,一旦出现灾难事件,可以通过日志重放来恢复整个数据库)
3、redis支持集群模式(容量可以线性扩展)
4、redis相比其他缓存工具(ehcach/memcached),有一个鲜明的优势:支持丰富的数据结构
14.3.Redis的api客户端连接
新建一个maven工程,导入jedis的maven依赖坐标
然后写一个类用来测试服务器跟客户端的连通性:
15、Redis数据功能(String类型的数据处理)
15.1 String类型的数据
(常作为缓存使用)
1/插入和读取一条string类型的数据
2/对string类型数据进行增减(前提是这条数据的value可以看成数字)
3/一次性插入或者获取多条数据
4/在插入一条string类型数据的同时为它指定一个存活期限
案例:
其中maven项目的pom文件的内容如下:
代码:
16、List数据结构(及Java调用处理)
16.1 List图示
16.2 List功能演示
16.3 List的应用案例demo
1 需求描述
任务调度系统:
生产者不断产生任务,放入task-queue排队
消费者不断拿出任务来处理,同时放入一个tmp-queue暂存,如果任务处理成功,则清除tmp-queue,否则,将任务弹回task-queue
2 代码实现
1/生产者
——模拟产生任务
2/消费者
——模拟处理任务,并且管理暂存队列
上述机制是一个简化版,真实版的任务调度系统会更加复杂,如下所示:
(增加了一个专门用来管理暂存队列的角色,以便就算消费者程序失败退出,那些处理失败的任务依然可以被弹回task-queue)
17、Hash数据结构
17.1 Hash图示
Redis中的Hashes类型可以看成具有String Key和String Value的map容器
17.2 Hash功能演示
1、往redis库中插入一条hash类型的数据
举例:
在redis库中就形成了这样一条数据:
2、从redis库中获取一条hash类型数据的value
ü取出一条hash类型数据中所有field-value对
ü取出hash数据中所有fields
ü取出hash数据中所有的value
ü取出hash数据中一个指定field的值
ü为hash数据中指定的一个field的值进行增减
ü从hash数据中删除一个字段field及其值
18、Set数据结构功能
集合的特点:无序、无重复元素
1、 插入一条set数据
2、获取一条set数据的所有members
3、判断一个成员是否属于某条指定的set数据
4、求两个set数据的差集
5、 求交集,求并集
案例代码:
生产者消费者:
Set的案例:
19、sortedSet(有序集合)数据结构
19.1 sortedSet图示
sortedset中存储的成员都有一个附带的分数值
而redis就可以根据分数来对成员进行各种排序(正序、倒序)
1、 sortedSet存储内容示意图:
19.2 SortedSet功能演示
1、往redis库中插入一条sortedset数据
2、 从sortedset中查询有序结果
3、 查询某个成员的名次
4、修改成员的分数
案例:
Redis和nosql简介 api调用;Redis数据功能(String类型的数据处理);List数据结构(及Java调用处理);Hash数据结构;Set数据结构功能;sortedSet(有序集合)数
如果觉得《Redis和nosql简介 api调用;Redis数据功能(String类型的数据处理);List数据结构(》对你有帮助,请点赞、收藏,并留下你的观点哦!