RedisTemplate操作Redis数据:String类型

键和字符串类型值之间的映射

NewImage

首先插入一个整型

redis:0>set testKey 1
"OK"
redis:0>get testKey
"1"

浮点型

redis:0>set testKey 3.14
"OK"
redis:0>get testKey
"3.14"

字符串

redis:0>set testKey testString
"OK"
redis:0>get testKey
"testString"

使用Spring里的RedisTemplate操作如下

public class RedisTest extends BaseTest {

@Resource
private RedisTemplate redisTemplate;

@Test(description = "字符串类型")
public void redisStringTest() {
redisTemplate.opsForValue().set("testKey", 1);
Assert.assertEquals(redisTemplate.opsForValue().get("testKey"), 1);
redisTemplate.opsForValue().set("testKey", 3.14);
Assert.assertEquals(redisTemplate.opsForValue().get("testKey"), 3.14);
redisTemplate.opsForValue().set("testKey", "testString");
Assert.assertEquals(redisTemplate.opsForValue().get("testKey"), "testString");

}
}

假如操作的值是字符串类型,也可以通过StringRedisTemplate来操作,它是继承RedisTemplate,但由于他们使用了不同的序列化策略保存数据,一个是JdkSerializationRedisSerializer,一个是StringRedisSerializer,他们之间数据不相通,各自处理各自的

public class RedisTest extends BaseTest {

@Resource
private StringRedisTemplate stringRedisTemplate;

@Test(description = "字符串类型")
public void redisStringTest() {
stringRedisTemplate.opsForValue().set("testKey", String.valueOf(1));
Assert.assertEquals(stringRedisTemplate.opsForValue().get("testKey"), String.valueOf(1));
stringRedisTemplate.opsForValue().set("testKey", String.valueOf(3.14));
Assert.assertEquals(stringRedisTemplate.opsForValue().get("testKey"), String.valueOf(3.14));
stringRedisTemplate.opsForValue().set("testKey", "testString");
Assert.assertEquals(stringRedisTemplate.opsForValue().get("testKey"), "testString");

}
}

因此如果是操作字符串,直接用StringRedisTemplate,如果是操作一个对象,那直接通过RedisTemplate

发表回复