All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.redisson.api.options.ClientSideCachingOptions Maven / Gradle / Ivy

Go to download

Easy Redis Java client and Real-Time Data Platform. Valkey compatible. Sync/Async/RxJava3/Reactive API. Client side caching. Over 50 Redis based Java objects and services: JCache API, Apache Tomcat, Hibernate, Spring, Set, Multimap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Bloom filter, Scheduler, RPC

The newest version!
/**
 * Copyright (c) 2013-2024 Nikita Koksharov
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.redisson.api.options;

import java.time.Duration;

/**
 *
 * @author Nikita Koksharov
 *
 */
public interface ClientSideCachingOptions {

    enum EvictionPolicy {

        /**
         * Client cache without eviction.
         */
        NONE,

        /**
         * Least Recently Used client cache eviction policy.
         */
        LRU,

        /**
         * Least Frequently Used client cache eviction policy.
         */
        LFU,

        /**
         * Client cache  eviction policy with Soft Reference used for values.
         * All references will be collected by GC
         */
        SOFT,

        /**
         * Client cache eviction policy with Weak Reference used for values.
         * All references will be collected by GC
         */
        WEAK
    };

    /**
     * Creates the default options
     *
     * @return options instance
     */
    static ClientSideCachingOptions defaults() {
        return new ClientSideCachingParams();
    }

    /**
     * Defines client cache eviction policy.
     *
     * @param evictionPolicy
     *         

LRU - uses client cache with LRU (least recently used) eviction policy. *

LFU - uses client cache with LFU (least frequently used) eviction policy. *

SOFT - uses client cache with soft references. The garbage collector will evict items from the client cache when the JVM is running out of memory. *

WEAK - uses client cache with weak references. The garbage collector will evict items from the client cache when it became weakly reachable. *

NONE - doesn't use eviction policy, but timeToLive and maxIdleTime params are still working. * @return options instance */ ClientSideCachingOptions evictionPolicy(EvictionPolicy evictionPolicy); /** * Defines client cache size. *

* If size is 0 then client cache is unbounded. *

* If size is -1 then client cache is always empty and doesn't store data. * * @param size size of client cache * @return options instance */ ClientSideCachingOptions size(int size); /** * Defines time to live in milliseconds of each map entry in client cache. * If value equals to 0 then timeout is not applied * * @param ttl - time to live in milliseconds * @return LocalCachedMapOptions instance */ ClientSideCachingOptions timeToLive(Duration ttl); /** * Defines max idle time in milliseconds of each map entry in client cache. * If value equals to 0 then timeout is not applied * * @param idleTime time to live in milliseconds * @return LocalCachedMapOptions instance */ ClientSideCachingOptions maxIdle(Duration idleTime); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy