Redis简介

发布于:2024-12-08 ⋅ 阅读:(132) ⋅ 点赞:(0)

1.1. 介绍

1.2. 安装与使用

  1. redis-server.exe 启动redis服务
  2. redis-cli.exe 启动客户端,,连接redis服务 -h 指定主机ip -p指定端口 -a指定密码

2. Redis数据类型

2.1. 5种常用数据类型

2.2. 各种数据类型的特点

3. Redis常用命令

3.1. 字符串操作命令

3.2. 哈希操作命令

3.3. 列表操作命令

3.4. 集合操作命令

3.5. 有序集合操作命令

3.6. 通用命令

4. 在Java中操作Redis

4.1. Redis的Java客户端

4.2. Spring Data Redis

4.2.1. 如何使用

4.2.2. 进行数据操作
4.2.2.1. 字符串类型数据
public void stringTest(){
        // set
        redisTemplate.opsForValue().set("name", "张三");
        // get
        String name = (String) redisTemplate.opsForValue().get("name");
        System.out.println(name);
        // setex
        redisTemplate.opsForValue().set("age", "18", 3, TimeUnit.MINUTES); // 过期时间3分钟
        // setnx
        redisTemplate.opsForValue().setIfAbsent("sex", "男");
        redisTemplate.opsForValue().setIfAbsent("sex", "女");
    }
4.2.2.2. 哈希类型数据
public void hashTest(){
        HashOperations hashOperations = redisTemplate.opsForHash();
        // hset
        hashOperations.put("100", "name", "Tom");
        hashOperations.put("100", "age", "25");
        // hget
        String name = (String) hashOperations.get("100", "name");
        String age = (String) hashOperations.get("100", "age");
        System.out.println(name + "------->" + age);
        // hkeys
        Set keys = hashOperations.keys("100");
        System.out.println(keys);
        // hvals
        List values = hashOperations.values("100");
        System.out.println(values);
        // hdel
        hashOperations.delete("100","age");
        keys = hashOperations.keys("100");
        System.out.println(keys);
    }
4.2.2.3. 操作列表类型数据
public void listTest(){
        ListOperations listOperations = redisTemplate.opsForList();
        // lpush
        listOperations.leftPushAll("mylist","a", "b", "c", "d");
        listOperations.leftPush("mylist", "e");
        // llen
        Long size = listOperations.size("mylist");
        System.out.println(size);
        // lrange
        List mylist = listOperations.range("mylist", 0, -1);
        System.out.println(mylist);
        // rpop
        listOperations.rightPop("mylist");
        mylist = listOperations.range("mylist", 0, -1);
        System.out.println(mylist);
    }
4.2.2.4. 操作集合类型数据
@Test
    public void setTest(){
        SetOperations setOperations = redisTemplate.opsForSet();
        // sadd
        setOperations.add("set1", "a", "b", "c", "d");
        setOperations.add("set2", "a", "b", "x", "y", "z");
        // smembers
        Set set1 = setOperations.members("set1");
        System.out.println(set1);
        // scard
        Long size = setOperations.size("set2");
        System.out.println(size);
        // srem
        setOperations.remove("set2","z");
        size = setOperations.size("set2");
        System.out.println(size);
        // sinter
        Set intersect = setOperations.intersect("set1", "set2");
        System.out.println(intersect);
        // sunion
        Set union = setOperations.union("set1", "set2");
        System.out.println(union);
    }
4.2.2.5. 操作有序集合类型数据
public void testZSet(){
        ZSetOperations zSetOperations = redisTemplate.opsForZSet();
        // zadd
        zSetOperations.add("zset", "a", 10);
        zSetOperations.add("zset", "b", 10.2);
        zSetOperations.add("zset", "c", 10.5);
        // zrange
        Set zset = zSetOperations.range("zset", 0, -1);
        System.out.println(zset);  // a b c
        // zincreby
        zSetOperations.incrementScore("zset", "a", 5);
        zset = zSetOperations.range("zset", 0, -1);
        System.out.println(zset);  // b c a
        // zrem
        zSetOperations.remove("zset","a");
        zset = zSetOperations.range("zset", 0, -1);
        System.out.println(zset); // b c

    }
4.2.2.6. 通用类型数据
public void commonTest(){
        // keys
        Set keys = redisTemplate.keys("*");
        System.out.println(keys);
        // exists
        Boolean name = redisTemplate.hasKey("name");
        Boolean age = redisTemplate.hasKey("age");
        System.out.println(name);
        System.out.println(age);
        // type
        for (Object key : keys) {
            DataType type = redisTemplate.type(key);
            System.out.println(key.toString() + "--------->" +type);
        }
        // del
        redisTemplate.delete("name");
        System.out.println(redisTemplate.hasKey("name"));
    }