当前位置: 首页 > news >正文

Redis之Java操作redis

零:在test测试类下创建一个类

@SpringBootTest
public class SpringDateRedisTest {...
}

一:五大操作类型

    @Autowiredprivate RedisTemplate redisTemplate;@Testpublic void testRedisTemplate() {System.out.println(redisTemplate);ValueOperations valueOperations = redisTemplate.opsForValue(); //操作字符串类型数据HashOperations hashOperations = redisTemplate.opsForHash(); //操作哈希类型的数据ZSetOperations zSetOperations = redisTemplate.opsForZSet(); //操作zsetListOperations listOperations = redisTemplate.opsForList(); //操作list集合类型数据SetOperations setOperations = redisTemplate.opsForSet(); //操作set}

二:操作字符串的数据

    @Testpublic void testString() {// set get 设置键值对并获取值redisTemplate.opsForValue().set("city", "北京");String city = (String) redisTemplate.opsForValue().get("city");System.out.println(city);// setex 设置保存时间:3分钟redisTemplate.opsForValue().set("code", "1234", 3, TimeUnit.MINUTES);// setnx 如果键不存在,则设置键值对redisTemplate.opsForValue().setIfAbsent("lock", 1);redisTemplate.opsForValue().setIfAbsent("lock", 2);}

三:操作哈希类型的数据

    @Testpublic void testHash() {// hset 添加哈希字段和值HashOperations hashOperations = redisTemplate.opsForHash();hashOperations.put("100", "name", "zhangsan");hashOperations.put("100", "age", "18");// hget 获取哈希字段的值String name = (String) hashOperations.get("user:1", "name");System.out.println(name);// hkeys 获取哈希的所有字段Set keys = hashOperations.keys("100");System.out.println(keys);// hvals 获取哈希的所有值List values = hashOperations.values("100");System.out.println(values);// hdel 删除哈希字段hashOperations.delete("100", "age");}

四:操作list集合类型的数据

    @Testpublic void testList() {// lpush 将元素从左侧插入列表ListOperations listOperations = redisTemplate.opsForList();listOperations.leftPushAll("list", "a", "b", "c");listOperations.leftPush("list", "d");// lrange 获取列表指定范围的元素List list = listOperations.range("list", 0, -1);System.out.println(list);// lpop 从右侧弹出列表的元素aObject list1 = listOperations.rightPop("list");System.out.println(list1);// llen 获取列表的长度Long size = listOperations.size("list");System.out.println(size);}

五:操作set集合类型的数据

    @Testpublic void testSet() {//sadd 添加元素到集合SetOperations setOperations = redisTemplate.opsForSet();setOperations.add("set1", "a", "b", "c", "d");setOperations.add("set2", "a", "b", "x", "y");//smembers 获取集合的所有元素Set members = setOperations.members("set1");System.out.println(members);//scard 获取集合的长度Long size = setOperations.size("set1");System.out.println(size);//sinter 求交集Set intersect = setOperations.intersect("set1", "set2");System.out.println(intersect);//sunion 求并集Set union = setOperations.union("set1", "set2");System.out.println(union);//srem 删除集合中的元素setOperations.remove("set1", "a","b");}

六:操作zset类型的数据

    @Testpublic void testZset() {//zadd 添加元素到zsetZSetOperations zSetOperations = redisTemplate.opsForZSet();zSetOperations.add("zset", "a", 10);zSetOperations.add("zset", "b", 12);zSetOperations.add("zset", "c", 9);//zrange 获取指定范围的元素Set range = zSetOperations.range("zset", 0, -1);System.out.println(range);//zincrby 根据元素的分数进行排序,并返回元素zSetOperations.incrementScore("zset", "c", 10);//zcrem 删除元素zSetOperations.remove("zset", "a", "b");}

七:操作通用类型的数据

    @Testpublic void testCommand() {//keys 获取所有键Set keys = redisTemplate.keys("*");System.out.println(keys);//exists 判断键是否存在Boolean name = redisTemplate.hasKey("name");Boolean set1 = redisTemplate.hasKey("set1");System.out.println(name);System.out.println(set1);//type 获取键的类型for (Object key: keys){DataType type = redisTemplate.type(key);System.out.println(type.name());}//del 删除键redisTemplate.delete("set1");}

相关文章:

  • 性能比拼: Go vs Java
  • 反素数c++
  • 云原生--基础篇-4--CNCF-1-云原生计算基金会(云原生生态发展和目标)
  • 【文件上传/下载Java+vue3——MQ】
  • vue3新增特性
  • KUKA机器人KR 3 D1200 HM介绍
  • [Android]豆包爱学v4.5.0小学到研究生 题目Ai解析
  • Postman下载安装与使用汉化版教程
  • 桌面我的电脑图标不见了怎么恢复 恢复方法指南
  • 虚无隧穿产生宇宙(true nothing tunneling) 是谁提出的
  • MAC系统下完全卸载Android Studio
  • hbuilderx云打包生成的ipa文件如何上架
  • 路由器转发规则设置方法步骤,内网服务器端口怎么让异地连接访问的实现
  • 【白雪讲堂】[特殊字符]内容战略地图|GEO优化框架下的内容全景布局
  • 【AI】SpringAI 第四弹:接入本地大模型 Ollama
  • 如何正确选择培养基种类
  • PaddlePaddle线性回归详解:从模型定义到加载,掌握深度学习基础
  • MacOS 10.15上能跑大语言模型吗?
  • HCIP(OSPF)(3)
  • qt报“use multi-arg instead [clazy-qstring-arg]”警告的解决方法
  • 此前显示售罄的火车票“五一”前大量放出来了?12306回应
  • 购车补贴、“谷子”消费、特色产品,这些活动亮相五五购物节
  • 新华时评:防范安全事故须臾不可放松
  • 北京亦庄启动青年人才创新创业生态示范区
  • 北方旱情持续,水利部:大中型灌区春灌总体有保障
  • 澎湃回声丨23岁小伙“被精神病8年”续:今日将被移出“重精”管理系统