Spring Data Redis提供在Spring应用中配置和访问Redis服务器的功能。
为数据交互提供了低级别和高级别抽象,从基础操作中解放用户。
本文只是对Spring Data Redis的一些概念点做笔记,配置和使用还请自行Google。
Moreover, the template provides operations views (following the grouping from Redis command reference) that offer rich, generified interfaces for working against a certain type or certain key (through the KeyBound
interfaces) as described below:
此外,RedisTemplate还提供了丰富的操作视图(根据Redis命令分组),泛型接口可以操作一个类型的数据或者一个Key(通过KeyBound实现)
通过RedisTemplate处理对象
接口 | 描述 |
---|---|
类型操作 | |
ValueOperations | 简单K-V操作 |
ListOperations | 针对list类型的数据操作 |
SetOperations | set类型数据操作 |
ZSetOperations | zset类型数据操作 |
HashOperations | 针对hash类型的数据操作 |
HyperLogLogOperations | HyperLogLog(见附录)操作 |
GeoOperations | GEO相关操作(这个比较有意思,可以研究一下) |
绑定操作 | |
BoundValueOperations | Redis string (or value) key bound operations |
BoundListOperations | Redis list key bound operations |
BoundSetOperations | Redis set key bound operations |
BoundZSetOperations | Redis zset (or sorted set) key bound operations |
BoundHashOperations | Redis hash key bound operations |
BoundGeoOperations | Redis key bound geospatial operations. |
一旦配置完成,RedisTemplate是线程安全的,并且可以跨多个实例重用。
不过通过ValueOperations
类似的接口处理Redis操作,貌似没有返回值。
附录
Redis HyperLogLog
Redis 在 2.8.9 版本添加了 HyperLogLog 结构。
Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。
在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。
但是,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog 不能像集合那样,返回输入的各个元素。