簡體   English   中英

redisson:從 redis 中刪除嵌套的 object

[英]redisson: deleting nested object from redis

我正在使用 java 的 redisson 庫來維護用於存儲嵌套對象的 RLO(redisson 活動對象)。 我使用 delete 從 redis 中刪除了這些嵌套對象,但從 redis-cli 我看到實際上 object 已被部分刪除。 我錯過了什么?

我也遇到過不完全刪除的問題,但我相信這是因為有兩種不同的delete方法,它們的行為不同。

    /**
     * Deletes attached object including all nested objects.
     *
     * @param <T> Entity type
     * @param attachedObject - proxied object
     */
    <T> void delete(T attachedObject);

    /**
     * Deletes object by class and ids including all nested objects.
     *
     * @param <T> Entity type
     * @param entityClass - object class
     * @param ids - object ids
     * 
     * @return amount of deleted objects
     */
    <T> long delete(Class<T> entityClass, Object... ids);

盡管他們都說他們將刪除所有嵌套對象,但只有其中一個執行了此操作。 第一種方法實際上會調用私有方法

    private <T> void delete(T attachedObject, Set<String> deleted)

它將執行嵌套對象的刪除,快速檢查后可以看出:

        for (Entry<String, Object> obj : getMap(attachedObject).entrySet())

我不知道這是否是一個錯誤。

暫時只使用其他方法。 如果您有實體 ID,那么很容易在返回的實時 object 上運行get然后delete

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM