RedisTemplate常用函数解析和使用

RedisTemplate常用函数解析和使用

1.String

操作函数


    void set(K var1, V var2);

    void set(K var1, V var2, long var3, TimeUnit var5);
    // 是否存在值或者key
    @Nullable
    Boolean setIfAbsent(K var1, V var2);
    // 同时设置多个键值
    void multiSet(Map<? extends K, ? extends V> var1);
    //t同时判断多个键值
    @Nullable
    Boolean multiSetIfAbsent(Map<? extends K, ? extends V> var1);

    @Nullable
    V get(Object var1);
    // 设置键值并返回原来的键值
    @Nullable
    V getAndSet(K var1, V var2);

    @Nullable
    List<V> multiGet(Collection<K> var1);

    @Nullable
    Long increment(K var1, long var2);

    @Nullable
    Double increment(K var1, double var2);

    @Nullable
    Integer append(K var1, String var2);

    @Nullable
    String get(K var1, long var2, long var4);
    // 设置键值加偏移量(原来的键值)
    void set(K var1, V var2, long var3);

    @Nullable
    Long size(K var1);

    @Nullable
    Boolean setBit(K var1, long var2, boolean var4);

    @Nullable
    Boolean getBit(K var1, long var2);

    RedisOperations<K, V> getOperations();

测试代码

    @Resource
    private RedisTemplate<String,Object> redisTemplate;
    @Test
    public void string(){
        //set(name,value,time,timeUnit,offset(偏移量))

        User user = new User("你好",20);
        redisTemplate.opsForValue().set(user.getUsername(),user);
        System.out.println(redisTemplate.opsForValue().get(user.getUsername()));

        redisTemplate.opsForValue().set(user.getUsername(),user,4,TimeUnit.HOURS);
        System.out.println(redisTemplate.opsForValue().get(user.getUsername()));

        String name = "increment";
        Long  i = 10L;
        redisTemplate.opsForValue().set(name,i);
        redisTemplate.opsForValue().increment(name,i);
    }

2.List

常用函数

    //返回存储在键中的列表的指定元素。偏移开始和停止是基于零的索引,其中0是列表的第一个元素(列表的头部),1是下一个元素,-1最后一个。
    @Nullable
    List<V> range(K key, long start, long end);
    //修剪现有列表,使其只包含指定的指定范围的元素,起始和停止都是基于0的索引
    void trim(K key, long start, long end);

    @Nullable
    Long size(K key);
    //返回的结果为推送操作后的列表的长度
    @Nullable
    Long leftPush(K key, V start);

    @Nullable
    Long leftPushAll(K key, V... start);

    @Nullable
    Long leftPushAll(K key, Collection<V> start);
    //只有存在key对应的列表才能将这个value值插入到key所对应的列表中
    @Nullable
    Long leftPushIfPresent(K key, V start);
   //把value值放到key对应列表中pivot值的左面,如果pivot值存在的话
    @Nullable
    Long leftPush(K key, V pivot, V value);

    @Nullable
    Long rightPush(K key, V start);

    @Nullable
    Long rightPushAll(K key, V... start);

    @Nullable
    Long rightPushAll(K key, Collection<V> start);

    @Nullable
    Long rightPushIfPresent(K key, V start);
    //把value值放到key对应列表中pivot值的右面,如果pivot值存在的话
    @Nullable
    Long rightPush(K key, V pivot, V value);

    void set(K key, long start, V value);

    @Nullable
    Long remove(K key, long start, Object object);
    // 根据下标获取列表中的值
    @Nullable
    V index(K key, long start);
    //弹出左边值。
    @Nullable
    V leftPop(K key);

    @Nullable
    V leftPop(K key, long start, TimeUnit end);

    @Nullable
    V rightPop(K key);

    @Nullable
    V rightPop(K key, long start, TimeUnit end);
    // 用于移除列表的最后一个元素,并将该元素添加到另一个列表并返回
    @Nullable
    V rightPopAndLeftPush(K key, K start);

    @Nullable
    V rightPopAndLeftPush(K key, K start, long var3, TimeUnit var5);

    RedisOperations<K, V> getOperations();

测试代码

@Test
    public void list(){
        String name = "my:listRight";
        ArrayList<User> list = new ArrayList<>();
        User user1 = new User("你好",20);
        User user2 = new User("谢谢",23);
        list.add(user1);
        list.add(user2);
        redisTemplate.opsForList().rightPushAll(name,user1);
        redisTemplate.opsForList().rightPushAll(name,user2);
        redisTemplate.opsForList().leftPop(name);
        System.out.println(redisTemplate.opsForList().range(name, 0, -1));

    }

3.Hash

4.Zset

猜你喜欢

转载自blog.csdn.net/c_royi/article/details/81779649