在看关于redis的使用,是不是set,get就算学完了?

大神们问个问题:

redis当中,我感觉就是一个set,一个get

但是set和get出来的全都是object,需要强转

这个有什么好的方案或者用redis的小例子吗?

还有在jfinal当中还有必要用jedis吗?还是直接用redisplug?

评论区

杜福忠

2022-11-23 17:00

个人觉得也看业务需求了,只用到get set的话到也行。
从学习的角度看的话,建议把com.jfinal.plugin.redis的Cache方法都用一遍,看看都有哪些效果。
再说 get结果是<T> T 是放什么类型返回什么类型才是。(虽然都是Obj子类)

陈伟

2022-11-23 17:27

@杜福忠 杜哥,原来的mysql已上亿数据了,实在太慢了,基于这个考虑用redis做缓存,但redis又有很多不支持的,比如查询很费劲。。。。

杜福忠

2022-11-23 17:58

@陈伟 单库上亿的数据业务还真没接触过。可以试试MongoDB,网上说这个得劲,还支持各种查询。可以在本机装一个,查询应该能满足,然后测试一下性能,看能满足不

zzutligang

2022-11-23 20:13

@陈伟 redis只是一个kv缓存,不适合做关系表的存储。mongoDb虽然也可以做条件查询,但上亿的数据,也是有很大瓶颈的,毕竟mongoDb也是基于内存的。
你这个业务场景,我建议把数据导入到es或则solr里(适合大量的模糊查询,例如lmysq的like %关键字%),或则导入clickhouse里,适合查询或则聚合分析(大量的多表联合不太适合),或则导入doris里(基本上可以把它看成关系数据库,但实际上并不是)。这些数据库都可以满足几十亿甚至上百亿的数据查询。都是可以实现秒级返回。

JFinal

2022-11-23 20:40

redis 是缓存,一般用于存放共享数据、热点数据,还可以辅助实现一些关系型数据库不方便实现的功能

例如,在集群架构下,存放多个节点下的账户登录信息。高并发条件下缓存库存数据等等

JFinal

2022-11-23 20:41

在 jfinal 中用 RedisPlugin 就好,多数 API 都封装好了,比直接用 jedis 要方便。

没有封装的 API 可以通过 Redis.call 来实现

dkmilk

2022-11-28 16:29

数据上亿,得分表分库,一般一表一库不超过500万,上亿已远远超标了,我的应用中几千万条的表好几个,都分小了,和用REDIS没关系,redis只临时存放数据,起到性能优化的目的,最后还是要同步到mysql中去

陈伟

2022-11-28 16:46

@dkmilk 兄弟您分库分表用的什么成型的方案?现在问题是老程序不能改。

陈伟

2022-11-28 17:01

@zzutligang 兄弟有相关经验,可否赐教?

zzutligang

2022-11-29 10:20

@陈伟 我是不喜欢分库分表。大表数据该进还是进,如果业务数据表越积累越多,并且当前业务和历史数据关系并不大,那就把历史数据(例如今年以前的)都灌到doris里。业务表只保留当前年的。当然这些都要根据业务场景变通,并不是一成不变的。如果查询需要实时查,那就用flink把当前业务数据同步到doris里。所有查询都走doris,所有CUD,都操作mysql。实际项目中运用,效果很好的。

热门反馈

扫码入社