04. SDR RedisTemplate API 简介

RedisTemplate 提供的API 是比较丰富的, 所以要想完全熟练掌握所有API 的特性,并不太容易, 而且也没有太大必要。 RedisTemplate 提供的API 大都和redis-cli 命令行支持的命令类似,而且SDR 源码中注释比较清楚,所以我们无须记忆所有API 的特点, 只需掌握如何使用方式即可, 当需要用某种类型时, 翻阅一下源码的API 说明即可.

1. 常用API

根据API 使用的范围 可将RedisTemplate 提供的API 大致可以分为三种:

  • delete/expire…: 对任意类型的key的通用操作, 如删除key,设置过期时间等
  • opsForxxx(): 针对特定类型API, 返回针对Redis特定类型的操作对象,返回的操作对象只能对这一种类型的任意key进行操作
  • boundXXXOperations: 针对特定Key API, 返回针对Redis特定类型的某个key的操作对象,返回对象只能对这一个key进行操作

1.1 opsFor API

RedisTemplate 提供了一组opsForxxx的API,会返回相应的数据类型对应的操作方法。Redis有五种基本数据类型,因此对应于五种不同的API。

| 方法签名 || 描述 |
| :— | :— |
| public ValueOperations<K, V> opsForValue() | 返回String类型的操作对象 |
| public ListOperations<K, V> opsForList() | 返回List类型的操作对象 |
| public SetOperations<K, V> opsForSet() | 返回Set类型的操作对象 |
| public <HK, HV> HashOperations<K, HK, HV> opsForHash() | 返回Set类型的操作对象 |
| public ZSetOperations<K, V> opsForZSet() | 返回ZSet类型的操作对象 |
| public ClusterOperations<K, V> opsForCluster() | 返回集群的相关操作对象 |
| public GeoOperations<K, V> opsForGeo() | 返回对Geo 类型的操作对象 |

1.2 boundXXOptions API

对redis的每个操作都离不开key,因此RedisTemplate提供了绑定key的API,这样获取到绑定key的操作之后,使用api就无须再指明key了。

方法签名描述
public BoundValueOperations<K, V> boundValueOps(K key)返回绑定固定key的, String类型的操作对象
public BoundListOperations<K, V> boundListOps(K key)返回绑定固定key的,list 类型的操作对象
public BoundSetOperations<K, V> boundSetOps(K key)返回绑定固定key的, Set类型的操作对象
public <HK, HV> BoundHashOperations<K, HK, HV> boundHashOps(K key)返回绑定固定ke的, hash类型的操作对象
public BoundZSetOperations<K, V> boundZSetOps(K key)返回固定key的, ZSet类型的操作
public BoundGeoOperations<K, V> boundGeoOps(K key)返回绑定固定key的, geo 类型的操作

1.3 其它API

RedisTemplate 还有很多其他的API,如expire, delete 等,这些都比较简单,笔者这里只简单列举几个.

方法签名方法描述
public Boolean delete(K key)删除一个任意类型的key
public Long delete(Collection keys)删除多个任意类型的key
public Boolean expire(K key, long timeout, TimeUnit unit)设置key 过期时间
public Boolean expireAt(K key, Date date)设置key 在某个具体时间点过期
public Boolean hasKey(K key)判断key 是否存在
public void rename(K oldKey, K newKey)重命名key
public DataType type(K key)获取key的类型
public K randomKey()随机返回一个key

2. API 测试

RedisTemplate 常用API 使用方式比较简单,源码中文档写的也很清楚, 笔者这里只简单介绍一下使用方式, 具体API 特性还需在使用时自己确定.

2.1 通用key API

@Test
public void test_commons(){
    // 判断redis中是否有相应的key
    Boolean hasHost = redisTemplate.hasKey("host");

    // 删除key
    Boolean del = redisTemplate.delete("host");
}

2.2 特定类型API-opsFor

@Test
public void test_ops(){
    ValueOperations stringOps = redisTemplate.opsForValue();
    stringOps.set("string", "127.0.0.1");

    ListOperations listOps = redisTemplate.opsForList();
    listOps.leftPush("list", "127.0.0.1");

    HashOperations hashOps = redisTemplate.opsForHash();
    hashOps.put("hash","hosts", "127.0.0.1");
}

2.2 特定keyAPI-boundXXOprations

@Test
public void test_bound(){
    BoundSetOperations booksOps = redisTemplate.boundSetOps("books");
    booksOps.add("java", "linux");

    BoundHashOperations dictOps = redisTemplate.boundHashOps("dict");
    dictOps.put("A",65);
    dictOps.put("B",66);
    dictOps.put("C",67);
}
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值