java单线程redis为什么快?它的数据类型有哪些?

BSO 2020-12-08 15:35:23 java常见问答 8081

关于java单线程Redis的内容不知道大家有没有了解过呢?它也是涉及到很多方面的呢。数据类型也是非常多的,所以需要我们平时花费一定的时间去学习。今天就一起来了解一下吧。

首先说一下,java单线程redis为什么快?

原因如下:

1.纯内存操作

2.单线程操作,避免了频繁的上下文切换

3.采用了非阻塞I/O多路复用机制

那么的它的数据类型,以及每种数据类型的使用场景都有哪些呢?

回答:一共五种

1.string

最常规的set/get操作,value可以是String也可以是数字。一般做一些复杂的计数功能的缓存。

2.hash

这里value存放的是结构化的对象,比较方便的就是操作其中的某个字段。博主在做单点登录的时候,就是用这种数据结构存储用户信息,以cookieId作为key,设置30分钟为缓存过期时间,能很好的模拟出类似session的效果。

3.list

使用List的数据结构,可以做简单的消息队列的功能。另外还有一个就是,可以利用lrange命令,做基于redis的分页功能,性能极佳,用户体验好。本人还用一个场景,很合适—取行情信息。就也是个生产者和消费者的场景。LIST可以很好的完成排队,先进先出的原则。

4.set

因为set堆放的是一堆不重复值的集合。所以可以做全局去重的功能。为什么不用JVM自带的Set进行去重?因为我们的系统一般都是集群部署,使用JVM自带的Set,比较麻烦,难道为了一个做一个全局去重,再起一个公共服务,太麻烦了。另外,就是利用交集、并集、差集等操作,可以计算共同喜好,全部的喜好,自己独有的喜好等功能。

5.sorted set

sorted set多了一个权重参数score,集合中的元素能够按score进行排列。可以做排行榜应用,取TOP N操作。

从上文的内容可以看出来,redis的数据类型还是非常丰富的,所以也是需要我们花更多的知识去了解的。如果大家想要了解更多的java常见问题,敬请关注奇Q工具网。

推荐阅读:

java中热点数据是什么?Memcache与Redis的区别是什么?

java spring boot中怎么使用redis?详细解析

java spring boot中怎么整合Redis?详细解析