//hash 哈希类型的 @Test public void testHash() { //hset hget hdel hekys HashOperations hashOperations = redisTemplate.opsForHash(); //创建hash类型的操作对象 hashOperations.put("100", "name", "zhaoliu");//hset 设置字段 hashOperations.put("100", "age", "18"); hashOperations.put("100", "sex", "1"); Set keys = hashOperations.keys("100");//获取表中的所有名字 hkeys List values = hashOperations.values("100");//获取表中的所有字段 hvals hashOperations.delete("100", "sex"); String name = (String) hashOperations.get("100", "name");//hdel key和haskey删除字段 String age = (String) hashOperations.get("100", "age"); System.out.println(name + ":" + age); }
//字符串类型常用对象 @Test public void stringTest() { //set get setex setnx //获取redisString类型操作对象 ValueOperations valueOperations = redisTemplate.opsForValue(); valueOperations.set("name", "张三");//set setex 整合了两个操作,同时可以设置过期时间类型 //参数三 设置键的时间 参数四 设置键时间的单位 valueOperations.set("age", "20", 1, TimeUnit.MINUTES); //setnx 如果存在的话 插入键值 //valueOperations.setIfAbsent() String name = (String) valueOperations.get("name");//get 设置指定key的值 也可以添加键值对 System.out.println(name); }
//操作列表类型的数据 public void testList(){ //创建list数据类型操作对象 ListOperations listOperations = redisTemplate.opsForList(); //lpush 将一个或多个值从左边开始插入 listOperations.leftPushAll("mylist","a","b","c"); listOperations.leftPush("mylist","d"); //lrange 获取指定范围内的元素 List mylist = listOperations.range("mylist", 0, 1); //llen 获取列表长度 Long mylis = listOperations.size("mylis"); //rpop 移除并获取左边第一个元素 Object mylist1 = listOperations.leftPop("mylist"); //移除并获取右边第一个元素 Object mylist2 = listOperations.rightPop("mylist"); }
//操作集合类型的数据 public void testSet(){ //创建set集合类型的操作对象 (set不能出现重复数据) SetOperations setOperations = redisTemplate.opsForSet(); //sadd 向集合中添加一个或多个成员 setOperations.add("myset01","a","b","c"); //smembers 返回集合中的所有成员 Set myset01 = setOperations.members("myset01"); //scard 返回集合中的成员数 Long myset011 = setOperations.size("myset01"); //sinter 返回给定集合的所有交集 Set intersect = setOperations.intersect("myset01", "myset02"); //sunion 返回给定集合所有的并集 Set union = setOperations.union("myset01", "myset02"); //srem 删除集合中一个或多个成员 setOperations.remove("myset01","a"); }
//操作有序集合类型的数据 public void testZSet(){ //创建zest数据类型操作对象 ZSetOperations zSetOperations = redisTemplate.opsForZSet(); //zadd 向有序集合添加一个或多个成员 zSetOperations.add("zset1","a",16); zSetOperations.add("zset1","b",8); zSetOperations.add("zset1","c",20); //zrange 通过索引区间 返回有序集合中指定区间内的成员 Set zset1 = zSetOperations.range("zset1", 0, 2); //zincrby 对指定成员的分数增量 zSetOperations.incrementScore("zset1","a",2); //zrem 移除一个或多个成员 zSetOperations.remove("zset1","a"); }
//通用命令操作 @Test public void testComm(){ //直接通过redisTemplate模板对象操作 因为此操作与数据类型无关 //keys 返回数据库所有给定模式(正则表达式)的key Set keys = redisTemplate.keys("*"); //exists 查询key存在不存在 Boolean name = redisTemplate.hasKey("name"); //type 返回key所存储的值类型 DataType myset01 = redisTemplate.type("myset01"); myset01.name(); //del key存在的话就删除 redisTemplate.delete("name"); }