reddies常规操作

import org.junit.Test;  
import org.junit.runner.RunWith;  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.boot.test.context.SpringBootTest;  
import org.springframework.data.redis.connection.DataType;  
import org.springframework.data.redis.core.*;  
import org.springframework.test.context.junit4.SpringRunner;  
  
import java.util.List;  
import java.util.Set;  
import java.util.concurrent.TimeUnit;  
  
@SpringBootTest  
@RunWith(SpringRunner.class)  
public class SpringDataRedisTest {  
  
    @Autowired  
    private RedisTemplate redisTemplate;  
  
    /**  
     * 操作String类型数据  
     */  
    @Test  
    public void testString(){  
        redisTemplate.opsForValue().set("city123","beijing");  
  
        String value = (String) redisTemplate.opsForValue().get("city123");  
        System.out.println(value);  
  
        redisTemplate.opsForValue().set("key1","value1",10l, TimeUnit.SECONDS);  
  
        Boolean aBoolean = redisTemplate.opsForValue().setIfAbsent("city1234", "nanjing");  
        System.out.println(aBoolean);  
    }  
  
    /**  
     * 操作Hash类型数据  
     */  
    @Test  
    public void testHash(){  
        HashOperations hashOperations = redisTemplate.opsForHash();  
  
        //存值  
        hashOperations.put("002","name","xiaoming");  
        hashOperations.put("002","age","20");  
        hashOperations.put("002","address","bj");  
  
        //取值  
        String age = (String) hashOperations.get("002", "age");  
        System.out.println(age);  
  
        //获得hash结构中的所有字段  
        Set keys = hashOperations.keys("002");  
        for (Object key : keys) {  
            System.out.println(key);  
        }  
  
        //获得hash结构中的所有值  
        List values = hashOperations.values("002");  
        for (Object value : values) {  
            System.out.println(value);  
        }  
    }  
  
    /**  
     * 操作List类型的数据  
     */  
    @Test  
    public void testList(){  
        ListOperations listOperations = redisTemplate.opsForList();  
  
        //存值  
        listOperations.leftPush("mylist","a");  
        listOperations.leftPushAll("mylist","b","c","d");  
  
        //取值  
        List<String> mylist = listOperations.range("mylist", 0, -1);  
        for (String value : mylist) {  
            System.out.println(value);  
        }  
  
        //获得列表长度 llen        Long size = listOperations.size("mylist");  
        int lSize = size.intValue();  
        for (int i = 0; i < lSize; i++) {  
            //出队列  
            String element = (String) listOperations.rightPop("mylist");  
            System.out.println(element);  
        }  
    }  
  
    /**  
     * 操作Set类型的数据  
     */  
    @Test  
    public void testSet(){  
        SetOperations setOperations = redisTemplate.opsForSet();  
  
        //存值  
        setOperations.add("myset","a","b","c","a");  
  
        //取值  
        Set<String> myset = setOperations.members("myset");  
        for (String o : myset) {  
            System.out.println(o);  
        }  
  
        //删除成员  
        setOperations.remove("myset","a","b");  
  
        //取值  
        myset = setOperations.members("myset");  
        for (String o : myset) {  
            System.out.println(o);  
        }  
  
    }  
  
    /**  
     * 操作ZSet类型的数据  
     */  
    @Test  
    public void testZset(){  
        ZSetOperations zSetOperations = redisTemplate.opsForZSet();  
  
        //存值  
        zSetOperations.add("myZset","a",10.0);  
        zSetOperations.add("myZset","b",11.0);  
        zSetOperations.add("myZset","c",12.0);  
        zSetOperations.add("myZset","a",13.0);  
  
        //取值  
        Set<String> myZset = zSetOperations.range("myZset", 0, -1);  
        for (String s : myZset) {  
            System.out.println(s);  
        }  
  
        //修改分数  
        zSetOperations.incrementScore("myZset","b",20.0);  
  
        //取值  
        myZset = zSetOperations.range("myZset", 0, -1);  
        for (String s : myZset) {  
            System.out.println(s);  
        }  
  
        //删除成员  
        zSetOperations.remove("myZset","a","b");  
  
        //取值  
        myZset = zSetOperations.range("myZset", 0, -1);  
        for (String s : myZset) {  
            System.out.println(s);  
        }  
    }  
  
    /**  
     * 通用操作,针对不同的数据类型都可以操作  
     */  
    @Test  
    public void testCommon(){  
        //获取Redis中所有的key  
        Set<String> keys = redisTemplate.keys("*");  
        for (String key : keys) {  
            System.out.println(key);  
        }  
  
        //判断某个key是否存在  
        Boolean itcast = redisTemplate.hasKey("itcast");  
        System.out.println(itcast);  
  
        //删除指定key  
        redisTemplate.delete("myZset");  
  
        //获取指定key对应的value的数据类型  
        DataType dataType = redisTemplate.type("myset");  
        System.out.println(dataType.name());  
  
    }  
}
posted @   Wade1080  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示