关于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;
}


}
原文地址:https://www.cnblogs.com/guagua-join-1/p/9809165.html