• 关于redis缓存的使用


    1.首先创建一个springboot项目,做测试用

    项目结构如下,测试使用,简单化了。

    application.yml配置如下

    server:
    port: 8088
    spring:
    redis:
    host: 127.0.0.1
    port: 6379
    database: 3
    password: 123456

    pom文件如下
    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.6.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    </properties>

    <dependencies>
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.0.4.RELEASE</version>
    </dependency>

    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
    </dependency>
    <dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/junit/junit -->
    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis -->
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
    <version>2.0.4.RELEASE</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
    <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.47</version>
    </dependency>
    </dependencies>
    <build>
    <plugins>
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    </plugins>
    </build>
    </project>

    service层如下,已经带注释
     * redisTemplate.opsForValue();//操作字符串
    * redisTemplate.opsForHash();//操作hash
    * redisTemplate.opsForList();//操作list
    * redisTemplate.opsForSet();//操作set
    * redisTemplate.opsForZSet();//操作有序set
    **/
    @Service
    public class RedisServiceImpl implements RedisService {
    @Autowired
    private RedisTemplate<String, String> redisTemplate;

    @Override
    public int setName(String name) {
    /**
    * redis缓存String类型的数据,(key , value)
    */
    // User user = new User(21, "程");
    // User user1 = new User(21, "程");
    // User user2 = new User(21, "程");
    // User user3 = new User(21, "程");
    // User user4 = new User(21, "程");
    //
    // List<User> demos = new ArrayList<User>();
    // demos.add(user);
    // demos.add(user1);
    // demos.add(user2);
    // demos.add(user3);
    // demos.add(user4);
    //
    // String s = JSONObject.toJSONString(demos);
    // ValueOperations<String, String> vo = redisTemplate.opsForValue();


    /**
    * redis缓存List类型数据,该值都会存入键为name1下
    */
    ListOperations<String,String> list = redisTemplate.opsForList();
    /**
    * 在集合的右边依次添加元素
    */
    list.rightPush("name1", "a");
    /**
    * 在集合的左边添加元素
    */
    list.leftPush("name1","b");
    /**
    * 在集合的右边添加元素
    */
    list.rightPush("name1","c");


    // Map map = new HashMap();
    // map.put("dy", "23");
    // map.put("cq", "24");
    // HashOperations ho = redisTemplate.opsForHash();
    // ho.putAll("name2", map);

    /**
    * 使用Set时,存入缓存里是数据唯一,如果有相同的将会覆盖掉前一个。
    */
    // SetOperations so = redisTemplate.opsForSet();
    // so.add("name4", "cq", "250", "a");
    // so.add("name4", "cw", "25", "b");



    return 0;
    }

    @Override
    public Boolean delName(String name) {
    Boolean delete = redisTemplate.delete(name);
    return delete;
    }

    @Override
    public Object getName(String name) {
    /**
    * 从缓存里获取Sring类型的数据,直接get(key)
    */
    // ValueOperations vo = redisTemplate.opsForValue();
    // Object o = vo.get(name);


    /**
    * 从redis里取出类型为List的数据,直接
    * range("name1", 0, -1)==取出全部;
    * listOperation.index("name1", i)==指定位置的值
    */
    // List<String> dataList = new ArrayList<>();
    ListOperations<String, String> listOperation = redisTemplate.opsForList();
    // Long size = listOperation.size("name1");
    //
    // for (int i = 0; i < size; i++) {
    // dataList.add(listOperation.index("name1", i));
    // }


    List<String> name1 = listOperation.range("name1", 0, -1);
    // String name1 = listOperation.index("name1",3);


    /**
    * 取出redis里哈希类型的数据
    */
    // HashOperations ho = redisTemplate.opsForHash();
    // Object o = ho.get("name2", "dy");
    // Map map = new HashMap();
    // map.put("dy",o);

    /**
    * 弹出键为name4的值,依次从后往前弹出值,并从redis里删除该值。
    */
    // SetOperations so = redisTemplate.opsForSet();
    // Object name4 = so.pop("name4");

    return name1;
    }


    }
  • 相关阅读:
    lua源码分析 伪索引
    visual studio 插件
    修改Linux内核参数 减少TIME-WAIT
    linux下编译libmysqlclient, 安装mysql-server mysql-client
    编译静态库tinyxml2
    linux下编译lua库
    在Xshell中文件内容显示乱码
    Java中的自增自减
    Integer的缓存机制
    八大基本排序
  • 原文地址:https://www.cnblogs.com/guagua-join-1/p/9809165.html
Copyright © 2020-2023  润新知