Java操控Redis (面经之 使用Redis)
操控Redis的工具 ReactiveRedisTemplate 和 RedisTemplate :
-
RedisTemplate:
- 它是一个通用的模板类,可以使用任何序列化策略来序列化和反序列化键和值。
- 默认情况下,它使用
JdkSerializationRedisSerializer
序列化值,并使用StringSerializer
序列化键。 - 你可以通过设置不同的序列化器来改变序列化行为。
- 这是一个阻塞的模板,适合于传统的同步编程模型。
-
ReactiveRedisTemplate:
- 这是一个反应式的模板类,它也是通用的,支持自定义序列化策略。
- 它实现了
ReactiveRedisOperations
接口,提供了非阻塞的方法调用。 - 适用于需要异步处理和高并发的场景。
opsforValue, opsforSet, opsforList 等等 对应 Java的数据结构 , 和 MySQL中的字段类型:
OpsForValue
, OpsForSet
, OpsForList
, OpsForHash
, OpsForZSet
等等都是 ReactiveRedisTemplate
或 RedisTemplate
对象中的方法,它们分别用于操作 Redis 中不同数据类型的键值对。
以下是一些常见的 Java 数据结构以及 MySQL 数据类型与 Redis 数据类型的对应关系:
-
Value(字符串):
- Java 数据结构:
String
- MySQL 数据类型:
VARCHAR
,TEXT
- Redis 数据类型:
String
- Java 数据结构:
-
Set:
- Java 数据结构:
Set<T>
(如HashSet<String>
) - MySQL 数据类型:MySQL 没有直接的集合类型,但是可以使用多个字段或表来表示一个集合。
- Redis 数据类型:
Set
(无序且元素唯一)
- Java 数据结构:
-
List:
- Java 数据结构:
List<T>
(如ArrayList<String>
) - MySQL 数据类型:同样没有直接对应的集合类型,可能使用多个字段或关系表来实现。
- Redis 数据类型:
List
- Java 数据结构:
-
Hash:
- Java 数据结构:
Map<K,V>
(如HashMap<String, String>
) - MySQL 数据类型:可以使用一行记录,其中包含多个列来表示一个哈希表。
- Redis 数据类型:
Hash
- Java 数据结构:
-
Sorted Set(有序集合):
- Java 数据结构:可以使用带有比较器的
Set<T>
或者自定义逻辑来排序。 - MySQL 数据类型:没有直接对应的集合类型,但可以通过添加额外的索引或者排序查询实现类似的功能。
- Redis 数据类型:
Sorted Set
- Java 数据结构:可以使用带有比较器的
需要注意的是,在 Redis 中存储的数据都是二进制安全的字符串,即使你存储的是数字或者布尔值,它们也会以字符串的形式存储。而 Java 和 MySQL 中的数据类型更加丰富,包括整型、浮点型、布尔型等,这些都是 Redis 不直接支持的。