该文章是接上一篇文章《Redis整合SpringBoot示例》的后续,操作用例代码比较多,这里展示核心代码所占篇幅很多,所以单独抽出来写
String类型在SpringBoot中的使用代码如下
方法对应的redis基本操作都比较简单,这里不做详细解释,每一个方法都有对应的注释。
package com.example.echo.redis;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.IntStream;
/**
* @author XLecho
* Date 2019/11/9 0009
* Time 10:28
*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class RedisTypeStringUseTest {
@Autowired
private RedisTemplate<String, String> redisTemplate;
/**
* 存入String类型
*/
@Test
public void testSetString() {
redisTemplate.opsForValue().set("testString", "testString");
System.out.println(redisTemplate.opsForValue().get("testString"));
}
/**
* 获取存入的String类型
*/
@Test
public void testGetString() {
String string = redisTemplate.opsForValue().get("testString");
System.out.println(string);
}
/**
* 删除存入的String类型
*/
@Test
public void testDelString() {
redisTemplate.delete("testString");
System.out.println(redisTemplate.opsForValue().get("testString"));
}
/**
* 对存入的值进行incr递增
*/
@Test
public void testIncrString() {
redisTemplate.opsForValue().set("value", "10");
redisTemplate.opsForValue().increment("value", 1.1);
System.out.println(redisTemplate.opsForValue().get("value"));
}
/**
* 对存入的值进行decr递减
*/
@Test
public void testDecrString() {
redisTemplate.opsForValue().set("value", "10");
redisTemplate.opsForValue().increment("value", -1);
System.out.println(redisTemplate.opsForValue().get("value"));
}
/**
* 对存入的值进行append拼接
*/
@Test
public void testAppendString() {
redisTemplate.opsForValue().set("value", "string");
redisTemplate.opsForValue().append("value", "s");
System.out.println(redisTemplate.opsForValue().get("value"));
}
/**
* 获取指定key对应的索引位置的字符
*/
@Test
public void testGetRangeString() {
redisTemplate.opsForValue().set("value", "abcdefgh");
String value = redisTemplate.opsForValue().get("value", 1, 5);
System.out.println(value);
}
/**
* 在指定key对应的索引位置后面添加字符666
* 注意:该方法会从指定索引后面添加666,但是如果指定索引后面刚好有还有3个字符,那么那3个字符会被替换
*/
@Test
public void testSetRangeString() {
redisTemplate.opsForValue().set("value", "666", 2);
System.out.println(redisTemplate.opsForValue().get("value"));
}
/**
* 获取指定key的长度
*/
@Test
public void testStrlenString() {
System.out.println(redisTemplate.opsForValue().size("value"));
}
/**
* 同时set多个key
*/
@Test
public void testMsetString() {
Map<String, String> map = new HashMap<>();
map.put("a", "1");
map.put("b", "2");
redisTemplate.opsForValue().multiSet(map);
System.out.println(redisTemplate.opsForValue().get("a"));
System.out.println(redisTemplate.opsForValue().get("b"));
}
/**
* 同时get多个值
*/
@Test
public void testMgetString() {
List<String> list = Arrays.asList("a", "b");
System.out.println(redisTemplate.opsForValue().multiGet(list));
}
/**
* setnx的使用
*/
@Test
public void testSetnxString() {
// 使用循环插入多次,校验存在的时候是否能够插入
IntStream.range(0, 10).forEach(it -> {
Boolean email = redisTemplate.opsForValue().setIfAbsent("email", "xl_echo@163.com");
System.out.println(email);
});
}
}
项目源码地址:https://coding.net/u/xlsorry/p/SpringBootRedis/git