Set keys = redisTemplate.keys("message*".getBytes()); 报错 [B cannot be cast to java.lang.String
时间: 2024-03-20 21:39:52 浏览: 157
这个问题的原因是 RedisTemplate.keys() 方法期望接收的参数类型是字符串类型,但是你传递了一个字节数组类型。你可以尝试使用以下代码来解决这个问题:
```
Set<byte[]> keys = redisTemplate.keys("message*".getBytes());
```
这里使用了 RedisTemplate 的 keys() 方法并将 "message*" 字符串转换为字节数组,这样就可以正确地获取 Redis 中所有以 "message" 开头的键了。注意,由于 Redis 中的键和值都是字节数组类型,因此 RedisTemplate 的很多方法都支持字节数组类型的参数和返回值。
相关问题
redisTemplate.keys("message*".getBytes()); 就算不返回 仅仅获取也报错
如果你仅仅是使用 RedisTemplate 的 keys() 方法获取 Redis 中所有以 "message" 开头的键,并不需要将结果保存在 Set 集合中,那么你可以尝试使用以下代码:
```
Set<byte[]> keys = redisTemplate.keys("message*".getBytes());
```
这里我们直接调用 RedisTemplate 的 keys() 方法获取 Redis 中所有以 "message" 开头的键,并将结果保存在一个字节数组类型的 Set 集合中。如果这段代码仍然报错,那么可能是因为 RedisTemplate 的配置或者 Redis 服务器连接出现了问题。你可以检查一下 RedisTemplate 的配置是否正确,以及 Redis 服务器是否正常运行。
阅读全文