键和字符串类型值之间的映射
首先插入一个整型
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