失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Redis和nosql简介 api调用;Redis数据功能(String类型的数据处理);List数据结构(

Redis和nosql简介 api调用;Redis数据功能(String类型的数据处理);List数据结构(

时间:2021-11-06 17:16:14

相关推荐

Redis和nosql简介 api调用;Redis数据功能(String类型的数据处理);List数据结构(

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数据结构(》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。