转自:https://blog.csdn.net/wxx151556/article/details/78493147点击打开链接
1、下载一个客户端:Redis Desktop Manager
2、redis的引用包:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.8.6.RELEASE</version>
</dependency>
- 1
- 2
- 3
- 4
- 5
3、redisTemplate里面有如下几种常用的形式:
(1) String类型
redisTemplate.opsForValue()
- 1
(2) List类型
redisTemplate.opsForList()
- 1
(3) Hash键值对
redisTemplate.opsForHash()
- 1
(4) Set类型
redisTemplate.opsForSet()
- 1
(5) 有序Set类型
redisTemplate.opsForZSet()
- 1
4、我在开发中用过前面四个,分别简单谈一下用法:
(1) String类型:
- 插入操作
UserInfo markIfFirstSync = new UserInfo();
userRedisTemplate.opsForValue().set(CACHE_KEY, markIfFirstSync);
- 1
- 2
向redis中某个string类型的key下面插入一个对象。
- 1
- 2
- 批量插入操作
public Map<String, OrgRelationInfo> mappingRelationRefresh = new HashMap<>();
redisTemplate.opsForValue().multiSet(mappingRelationRefresh);
- 1
- 2
往redis中某个String类型的key下面批量插入一个HashMap集合。
- 1
- 2
- 获取对象操作
userRedisTemplate.opsForValue().get(CACHE_NAME + CACHE_KEY_EXIST_PREFIX);
- 1
从redis中获取某个key下面的某个对象,如果不存在就返回null。
- 1
- 2
- 批量获取对象操作
List<String> sourceIdList = new ArrayList<>();
List<OrgRelationInfo> orgMappingRelationList = redisTemplate.opsForValue().multiGet(sourceIdList);
- 1
- 2
从redis中获取多个key下面的多个对象,返回一个List列表,但是即使对应的key下面没有值,这个**value也会返回**,不过是null,因此要判断是否List都为空,不能够用isEmpty直接判断,而应该一个一个的判断是否为空,才能判断整体为空。
- 1
- 2
(2) List类型
- 批量插入
List<OrgRelationInfo> remainOrgNodes = new ArrayList<>();
redisTemplate.opsForList().leftPushAll(CACHE_KEY, remainOrgNodes);
- 1
- 2
向redis的某个key下面的list列表里面插入一个list列表,不会去重。
- 1
- 2
- 批量取出
List<OrgRelationInfo> lastRemainOrgNodeList = redisTemplate.opsForList().range(CACHE_NAME + CACHE_REMAIN_KEY_PREFIX, 0, -1);
- 1
从redis中取出某一个key下面的list列表, 0表示从列表的第0个元素开始取,-1表示直取到倒数第一个元素,也就是整个列表的所有元素都取出来。
- 1
- 2
(3) Hash类型
- 批量插入
Map<Long, UserRelationInfo> value = new HashMap<>();
userHashRedisTemplate.opsForHash().putAll(KEY, value );
- 1
- 2
向redis中某个key下面插入key,hash的Map。
- 1
- 2
- 单个删除
userHashRedisTemplate.opsForHash().delete(key, sourceOrgId);
- 1
从redis中某个key下面删除掉某个hashkey所在的value。
- 1
- 2
- 单个获取
userHashRedisTemplate.opsForHash().get(Key, hashKey);
- 1
从redis中某个key下面得到这个key对应的hashkey的value值。前一个key只能是String类型,hashKey可以声明为自己需要的类型。
- 1
- 2
- 批量获取
Map<Object, Object> userOrgMap = userHashRedisTemplate.opsForHash().entries(getUserNodeCacheKey(syncUserNode.getSourceId()));
- 1
从redis中得到某个key下面的所有的hashkey和hashvalue值。
- 1
- 2
(4) Set类型
- 单个插入
userRoleSetRedisTemplate.opsForSet().add(KEY, cloudtOrgRoleInfo);
- 1
向redis的某个key下面的set列表里面插入一个元素,回去重,且无序。
- 1
- 2
- 批量取出
cloudtOrgRoleSet = userRoleSetRedisTemplate.opsForSet().members(KEY);
- 1
从redis的某个key下面得到set集合的所有元素,返回的也是一个Set集合。
- 1
- 2
- 单个删除
userRoleSetRedisTemplate.opsForSet().remove( KEY, subDeleteOrgRoleUserArray[i]);
- 1
从redis的某个key下面的set集合中删除掉一个元素。
- 1
- 2
5、具体的redis命令行操作可以参考:
转自:https://blog.csdn.net/wxx151556/article/details/78493147点击打开链接
1、下载一个客户端:Redis Desktop Manager
2、redis的引用包:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.8.6.RELEASE</version>
</dependency>
- 1
- 2
- 3
- 4
- 5
3、redisTemplate里面有如下几种常用的形式:
(1) String类型
redisTemplate.opsForValue()
- 1
(2) List类型
redisTemplate.opsForList()
- 1
(3) Hash键值对
redisTemplate.opsForHash()
- 1
(4) Set类型
redisTemplate.opsForSet()
- 1
(5) 有序Set类型
redisTemplate.opsForZSet()
- 1
4、我在开发中用过前面四个,分别简单谈一下用法:
(1) String类型:
- 插入操作
UserInfo markIfFirstSync = new UserInfo();
userRedisTemplate.opsForValue().set(CACHE_KEY, markIfFirstSync);
- 1
- 2
向redis中某个string类型的key下面插入一个对象。
- 1
- 2
- 批量插入操作
public Map<String, OrgRelationInfo> mappingRelationRefresh = new HashMap<>();
redisTemplate.opsForValue().multiSet(mappingRelationRefresh);
- 1
- 2
往redis中某个String类型的key下面批量插入一个HashMap集合。
- 1
- 2
- 获取对象操作
userRedisTemplate.opsForValue().get(CACHE_NAME + CACHE_KEY_EXIST_PREFIX);
- 1
从redis中获取某个key下面的某个对象,如果不存在就返回null。
- 1
- 2
- 批量获取对象操作
List<String> sourceIdList = new ArrayList<>();
List<OrgRelationInfo> orgMappingRelationList = redisTemplate.opsForValue().multiGet(sourceIdList);
- 1
- 2
从redis中获取多个key下面的多个对象,返回一个List列表,但是即使对应的key下面没有值,这个**value也会返回**,不过是null,因此要判断是否List都为空,不能够用isEmpty直接判断,而应该一个一个的判断是否为空,才能判断整体为空。
- 1
- 2
(2) List类型
- 批量插入
List<OrgRelationInfo> remainOrgNodes = new ArrayList<>();
redisTemplate.opsForList().leftPushAll(CACHE_KEY, remainOrgNodes);
- 1
- 2
向redis的某个key下面的list列表里面插入一个list列表,不会去重。
- 1
- 2
- 批量取出
List<OrgRelationInfo> lastRemainOrgNodeList = redisTemplate.opsForList().range(CACHE_NAME + CACHE_REMAIN_KEY_PREFIX, 0, -1);
- 1
从redis中取出某一个key下面的list列表, 0表示从列表的第0个元素开始取,-1表示直取到倒数第一个元素,也就是整个列表的所有元素都取出来。
- 1
- 2
(3) Hash类型
- 批量插入
Map<Long, UserRelationInfo> value = new HashMap<>();
userHashRedisTemplate.opsForHash().putAll(KEY, value );
- 1
- 2
向redis中某个key下面插入key,hash的Map。
- 1
- 2
- 单个删除
userHashRedisTemplate.opsForHash().delete(key, sourceOrgId);
- 1
从redis中某个key下面删除掉某个hashkey所在的value。
- 1
- 2
- 单个获取
userHashRedisTemplate.opsForHash().get(Key, hashKey);
- 1
从redis中某个key下面得到这个key对应的hashkey的value值。前一个key只能是String类型,hashKey可以声明为自己需要的类型。
- 1
- 2
- 批量获取
Map<Object, Object> userOrgMap = userHashRedisTemplate.opsForHash().entries(getUserNodeCacheKey(syncUserNode.getSourceId()));
- 1
从redis中得到某个key下面的所有的hashkey和hashvalue值。
- 1
- 2
(4) Set类型
- 单个插入
userRoleSetRedisTemplate.opsForSet().add(KEY, cloudtOrgRoleInfo);
- 1
向redis的某个key下面的set列表里面插入一个元素,回去重,且无序。
- 1
- 2
- 批量取出
cloudtOrgRoleSet = userRoleSetRedisTemplate.opsForSet().members(KEY);
- 1
从redis的某个key下面得到set集合的所有元素,返回的也是一个Set集合。
- 1
- 2
- 单个删除
userRoleSetRedisTemplate.opsForSet().remove( KEY, subDeleteOrgRoleUserArray[i]);
- 1
从redis的某个key下面的set集合中删除掉一个元素。
- 1
- 2