05. SDR StringRedisTemplate 简介

StringRedisTemplate 是SDR 默认提供的一个操作Redis 的工具类, 其key和value序列化方式均采用 StringRedisSerializer, 也就导致了StringRedisTemplate只能对key 和 value 均为String 类型的进行操作. 其常用API 全部继承于RedisTemplate.

1. StringRedisTemplate 源码

从源码可以看出,StringRedisTemplate 仅仅只是设置了key,value的序列化方式。所提供的所有方法都是其父类RedisTemplate 提供的。

public class StringRedisTemplate extends RedisTemplate<String, String> {

	public StringRedisTemplate() {
		RedisSerializer<String> stringSerializer = new StringRedisSerializer();
    	setKeySerializer(stringSerializer);
		setValueSerializer(stringSerializer);
		setHashKeySerializer(stringSerializer);
		setHashValueSerializer(stringSerializer);
	}

	public StringRedisTemplate(RedisConnectionFactory connectionFactory) {
		this();
		setConnectionFactory(connectionFactory);
		afterPropertiesSet();
	}

	protected RedisConnection preProcessConnection(RedisConnection connection, boolean existingConnection) {
		return new DefaultStringRedisConnection(connection);
	}
}

2. StringRedisTemplate 测试

2.1 测试用例

StringRedisTemplate 只能对key和value 均为String类型的String, hash 等操作.

@RunWith(SpringRunner.class)
@SpringBootTest
public class Test_StringRedisTemplate {

    @Autowired
    private RedisTemplate stringRedisTemplate;

    // 对key-value 均为string 的String类型进行操作
    @Test
    public void test_set(){
        // 设置key-value
        ValueOperations ops = stringRedisTemplate.opsForValue();
        ops.set("host", "127.0.0.1");
    }

    // 对key-value 均为string的List 进行操作
    @Test
    public void test_hash(){
        ListOperations listOps = stringRedisTemplate.opsForList();
        listOps.leftPush("list", "A");
        listOps.leftPush("list", "B");
        listOps.leftPush("list", "C");
    }

    // 对key-value均为String 的hash 进行操作
    @Test
    public void test_Hash(){
        HashOperations hashOps = stringRedisTemplate.opsForHash();
        hashOps.put("dict", "A", "65");
        hashOps.put("dict", "B", "66");
        hashOps.put("dict", "C", "67");
    }
}

2.2 redis 中存储形式

  • 采用redis-cli 命令查看redis 中存储情况
  • redis 中存储的实际为字节, 只是redis-cli 终端将字节转换为字符串呈现了出来
  • 通过redis-cli 客户端可以看出StringTemplate 就是将字符串原封不动地转换为字节存入redis之中了
# 获取所有的key
127.0.0.1:6379> keys *
1) "host"
2) "dict"
3) "list"

# 获取string类型的key的值
127.0.0.1:6379> get host
"127.0.0.1"

# 获取hash类型的key的值
127.0.0.1:6379> HGETALL dict
1) "A"
2) "65"
3) "B"
4) "66"
5) "C"
6) "67"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值