alibaba / jetcache

JetCache is a Java cache framework.
Apache License 2.0
5.05k stars 1.05k forks source link

目前感觉使用不方便的一些地方 #84

Open calebzhao opened 6 years ago

calebzhao commented 6 years ago

1、不能在一个方法里面调用另一个方法,也进行缓存拦截

2、key的生成策略不能自定义,我希望的是key是user:1这种中间用冒号分割的,而不是user1111111这样一长串的,在使用redis desktop manager这种工具时会以冒号(:)展示成树目录结构,方便观察, 当然把name改成 user: 确实能达到目标,但是感觉别扭。

3、类似spring的组合cache注解,在多个key缓存同一个对象时很有用, 虽然自己能通过api达到目的,但是还要自己写代码写在实现里感觉不好, 注解组合就清晰明了多了

areyouok commented 6 years ago

2、最终的key是cacheName+key,你如果不想每次都设置一个带冒号的cacheName,默认的cacheName生成方式也是可以定制的:

@Bean
public SpringConfigProvider springConfigProvider() {
    return new SpringConfigProvider(){
            public CacheNameGenerator createCacheNameGenerator(String[] hiddenPackages) {
                return new YourCacheNameGenerator(........){.......};
            }
    }
}

1、有考虑,准备做。不过最近很忙,啥时候能完成不好说 3、还未评估

linda8167 commented 6 years ago

谁给你分配的任务,我让他减轻你的工作,专心搞这个。。。

the-world-wang commented 6 years ago

看了几个issue, @areyouok 回复迅速、精准、有耐心,为你点赞

xiaolongyuan commented 6 years ago

@areyouok 清空缓存能设计一些API么 例如清除全部缓存 或者指定Key(支持通配符)缓存

areyouok commented 6 years ago

清空缓存能设计一些API么 例如清除全部缓存 或者指定Key(支持通配符)缓存

技术上难以做到。

xiaolongyuan commented 6 years ago

@areyouok 清空全部呢? 我现在是拿到连接 清除整个redis数据库的 但是本地 没有入口去清除

fusc2018 commented 5 years ago

我觉得很有清除所有缓存的api必要啊,我现在就是缓存的分页列表集合,更新其中一条 必须得所有缓存都要清除刷新,目前采取的办法是直接去redis删除对应的所有key。暂时能满足我的需求

    //清空缓存
    RedisFuture<List<String>> redisFuture = statefulRedisClusterConnection.async().keys("viewCfgClllist.*");
    try {
        List<String> keys =   redisFuture.get();
        String[] keysArr = new String[keys.size()];
        statefulRedisClusterConnection.async().del(keys.toArray(keysArr));
    } catch (InterruptedException e) {
       log.error("",e);
    } catch (ExecutionException e) {
        log.error("",e);
    }
simonuser commented 5 years ago

2、最终的key是cacheName+key,你如果不想每次都设置一个带冒号的cacheName,默认的cacheName生成方式也是可以定制的:

@Bean
public SpringConfigProvider springConfigProvider() {
    return new SpringConfigProvider(){
            public CacheNameGenerator createCacheNameGenerator(String[] hiddenPackages) {
                return new YourCacheNameGenerator(........){.......};
            }
    }
}

上述这种方式更改cacheName好像不可以?

1、有考虑,准备做。不过最近很忙,啥时候能完成不好说 3、还未评估

zhousenshan commented 4 years ago

清空缓存能设计一些API么 例如清除全部缓存 或者指定Key(支持通配符)缓存

技术上难以做到。

清空缓存非常有必要,特别是分布式情况,一级缓存需要随着二级缓存变化而变化,这个决定了这个框架的推广程度

pengliang0601 commented 1 year ago

清空缓存能设计一些API么 例如清除全部缓存 或者指定Key(支持通配符)缓存

技术上难以做到。

可以考虑通过自己来维护一个keylist来实现这个功能吗