在 Spring 中操作 Redis

目录

1.引入依赖

2.配置文件

3.字符串操作

3.1 mget 和 mset

3.2 getrange 和 setrange

3.3 append、incr 和 decr

4.列表操作 

4.1 lpush 和 lpop 和 lrange

4.2 rpush 和 rpop

4.3 llen 和 lrem

5.哈希表操作

5.1 hset、hget、hexists 和 hdel 

5.2 hkeys 和 hvals

6.集合操作

6.1 sadd、smembers、srem 和 sismember

6.2 scard、spop 和 sinter

7.有序集合操作

7.1 zadd、zrange、zrem 和 zcard 

7.2 zscore 和 zrank 


1.引入依赖

2.配置文件

3.字符串操作

3.1 mget 和 mset

@RequestMapping("/redis")
@RestController
public class MyController {

    @Autowired
    private StringRedisTemplate redisTemplate;

    @RequestMapping("/testString")
    public String testString() {
        redisTemplate.opsForValue().set("key1","111");
        HashMap<String,String> map = new HashMap<>();
        map.put("key2","222");
        map.put("key3","333");
        //multiSet 相当于 redis 中的 mset
        redisTemplate.opsForValue().multiSet(map);

        String ret = redisTemplate.opsForValue().get("key1");
        System.out.println("ret: " + ret);

        List<String> list = new ArrayList<>();
        list.add("key2");
        list.add("key3");
        //multiGet 相当于 redis 中的 mget
        List<String> values = redisTemplate.opsForValue().multiGet(list);
        System.out.println("values: " + values);

        ret = redisTemplate.opsForValue().get("key4");
        System.out.println("ret: " + ret);

        return "ok";
    }
}

3.2 getrange 和 setrange

@RequestMapping("/redis")
@RestController
public class MyController {

    @Autowired
    private StringRedisTemplate redisTemplate;

    @RequestMapping("/testString")
    public String testString() {
        redisTemplate.opsForValue().set("key1","111");

        //redis 中 setrange
        redisTemplate.opsForValue().set("key1","abc",2);

        String ret = redisTemplate.opsForValue().get("key1");
        System.out.println("ret: " + ret);

        //redis 中 getrange
        ret = redisTemplate.opsForValue().get("key1",0,3);
        System.out.println("ret: " + ret);

        return "ok";
    }
}

3.3 append、incr 和 decr

@RequestMapping("/redis")
@RestController
public class MyController {

    @Autowired
    private StringRedisTemplate redisTemplate;

    @RequestMapping("/testString")
    public String testString() {
        redisTemplate.opsForValue().set("key1","111");

        Long tmp = redisTemplate.opsForValue().size("key1");
        System.out.println("tmp: " + tmp);

        tmp = redisTemplate.opsForValue().increment("key1",1);
        System.out.println("tmp: " + tmp);

        tmp = redisTemplate.opsForValue().decrement("key1",10);
        System.out.println("tmp: " + tmp);

        redisTemplate.opsForValue().append("key1","abc");
        String ret = redisTemplate.opsForValue().get("key1");
        System.out.println("ret: " + ret);

        return "ok";
    }
}

4.列表操作 

4.1 lpush 和 lpop 和 lrange

    @RequestMapping("/testList")
    public String testList() {
        //先清空数据库
        redisTemplate.execute((RedisConnection connection) -> {
            //execute 要求回调方法必须写 return 语句
            connection.flushAll();
            return null;
        });
        // lpush
        redisTemplate.opsForList().leftPush("key1","a");
        redisTemplate.opsForList().leftPushAll("key1","b","c","d");
        // lrange
        List<String> ret = redisTemplate.opsForList().range("key1",0,-1);
        System.out.println("ret: " + ret);
        // lpop
        redisTemplate.opsForList().leftPop("key1");
        ret = redisTemplate.opsForList().range("key1",0,-1);
        System.out.println("ret: " + ret);

        return "ok";
    }

4.2 rpush 和 rpop

    @RequestMapping("/testList")
    public String testList() {
        //先清空数据库
        redisTemplate.execute((RedisConnection connection) -> {
            //execute 要求回调方法必须写 return 语句
            connection.flushAll();
            return null;
        });
        // rpush
        redisTemplate.opsForList().rightPush("key1","a");
        redisTemplate.opsForList().rightPushAll("key1","b","c","d");
        // lrange
        List<String> ret = redisTemplate.opsForList().range("key1",0,-1);
        System.out.println("ret: " + ret);
        // rpop
        redisTemplate.opsForList().rightPop("key1");
        ret = redisTemplate.opsForList().range("key1",0,-1);
        System.out.println("ret: " + ret);

        return "ok";
    }

4.3 llen 和 lrem

    @RequestMapping("/testList")
    public String testList() {
        //先清空数据库
        redisTemplate.execute((RedisConnection connection) -> {
            //execute 要求回调方法必须写 return 语句
            connection.flushAll();
            return null;
        });

        redisTemplate.opsForList().rightPush("key1","a");
        redisTemplate.opsForList().rightPushAll("key1","b","c","d");

        Long ret = redisTemplate.opsForList().size("key1");
        System.out.println("ret: " + ret);

        redisTemplate.opsForList().remove("key1",1,"a");
        List<String> tmp = redisTemplate.opsForList().range("key1",0,-1);
        System.out.println("tmp: " + tmp);

        return "ok";
    }

5.哈希表操作

5.1 hset、hget、hexists 和 hdel 

    @RequestMapping("/testHash")
    public String testHash() {
        redisTemplate.execute((RedisConnection connection) -> {
            connection.flushAll();
            return null;
        });
        // hset
        redisTemplate.opsForHash().put("key1","f1","111");
        HashMap<String,String> map = new HashMap<>();
        map.put("f2","222");
        map.put("f3","333");
        redisTemplate.opsForHash().putAll("key1",map);

        // hget
        String ret = (String) redisTemplate.opsForHash().get("key1","f1");
        System.out.println("ret: " + ret);

        //hexists
        Boolean tmp = redisTemplate.opsForHash().hasKey("key1","f1");
        System.out.println("tmp: " + tmp);

        //hdel
        redisTemplate.opsForHash().delete("key1","f1");
        ret = (String) redisTemplate.opsForHash().get("key1","f1");
        System.out.println("ret: " + ret);
        return "ok";
    }

5.2 hkeys 和 hvals

    @RequestMapping("/testHash")
    public String testHash() {
        redisTemplate.execute((RedisConnection connection) -> {
            connection.flushAll();
            return null;
        });

        redisTemplate.opsForHash().put("key1","f1","111");
        HashMap<String,String> map = new HashMap<>();
        map.put("f2","222");
        map.put("f3","333");
        redisTemplate.opsForHash().putAll("key1",map);

        Set<Object> ret = redisTemplate.opsForHash().keys("key1");
        System.out.println("ret: " + ret);

        List<Object> tmp = redisTemplate.opsForHash().values("key1");
        System.out.println("tmp: " + tmp);

        return "ok";
    }

6.集合操作

6.1 sadd、smembers、srem 和 sismember

    @RequestMapping("/testSet")
    public String testSet() {
        redisTemplate.execute((RedisConnection connection) -> {
            connection.flushAll();
            return null;
        });

        redisTemplate.opsForSet().add("key1","111","222","333");

        Set<String> ret = redisTemplate.opsForSet().members("key1");
        System.out.println("ret: " + ret);

        redisTemplate.opsForSet().remove("key1","111");
        Boolean tmp = redisTemplate.opsForSet().isMember("key1","111");
        System.out.println("tmp: " + tmp);

        ret = redisTemplate.opsForSet().members("key1");
        System.out.println("ret: " + ret);

        return "ok";
    }

6.2 scard、spop 和 sinter

    @RequestMapping("/testSet")
    public String testSet() {
        redisTemplate.execute((RedisConnection connection) -> {
            connection.flushAll();
            return null;
        });

        redisTemplate.opsForSet().add("key1","111","222","333");
        redisTemplate.opsForSet().add("key2","111","222","444");

        Long ret = redisTemplate.opsForSet().size("key1");
        System.out.println("ret: " + ret);

        Set<String> values = redisTemplate.opsForSet().intersect("key1","key2");
        System.out.println("values: " + values);

        ret = redisTemplate.opsForSet().remove("key1","222");
        System.out.println("ret: " + ret);

        values = redisTemplate.opsForSet().members("key1");
        System.out.println("values: " + values);

        return "ok";
    }

7.有序集合操作

7.1 zadd、zrange、zrem 和 zcard 

@RequestMapping("/testZSet")
    public String testZSet() {
        redisTemplate.execute((RedisConnection connection) -> {
            connection.flushAll();
            return null;
        });

        redisTemplate.opsForZSet().add("key1","zhangsan",80);
        redisTemplate.opsForZSet().add("key1","lis",90);
        redisTemplate.opsForZSet().add("key1","wangwu",75);

        Set<ZSetOperations.TypedTuple<String>> ret = 
                redisTemplate.opsForZSet().rangeWithScores("key1",0,-1);
        System.out.println("ret: " + ret);

        Long tmp = redisTemplate.opsForZSet().size("key1");
        System.out.println("tmp: " + tmp);

        tmp = redisTemplate.opsForZSet().remove("key1","zhangsan");
        System.out.println("tmp: " + tmp);

        ret = redisTemplate.opsForZSet().rangeWithScores("key1",0,-1);
        System.out.println("ret: " + ret);

        return "ok";
    }

7.2 zscore 和 zrank 

    @RequestMapping("/testZSet")
    public String testZSet() {
        redisTemplate.execute((RedisConnection connection) -> {
            connection.flushAll();
            return null;
        });

        redisTemplate.opsForZSet().add("key1","zhangsan",80);
        redisTemplate.opsForZSet().add("key1","lis",90);
        redisTemplate.opsForZSet().add("key1","wangwu",75);

        Double ret = redisTemplate.opsForZSet().score("key1","zhangsan");
        System.out.println("ret: " + ret);

        Long tmp = redisTemplate.opsForZSet().rank("key1","lis");
        System.out.println("tmp: " + tmp);

        return "ok";
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值