java中使用redis缓存数据库操作

开始在 Java 中使用 Redis 前, 首先需要确保已经安装了 redis 服务及 Java redis 驱动,且你的机器上能正常使用 Java。安装配置Redis:

maven配置如下

1<dependency> 2 <groupId>redis.clients</groupId> 3 <artifactId>jedis</artifactId> 4 <version>2.9.0</version> 5</dependency> 6 7使用Jedis连接并测试

1import org.junit.Test; 2import redis.clients.jedis.Jedis; 3 4import java.util.*; 5 6/** 7 * @author: dx 8 * @date:2019-03-26 9 */ 10public class RedisJava { 11 12 private static Jedis jedis; 13 14 static { 15 // 连接本地redis服务 16 jedis = new Jedis("localhost"); 17 } 18 19 // Redis Java String(字符串) 实例 20 @Test 21 public void testString(){ 22 // 设置redis字符串数据 23 jedis.set("top", "this is test on redis ..."); 24 jedis.set("name", "lw"); 25 // 获取存储数据并输出 26 System.out.printf("top 的数据为: %s\n", jedis.get("top")); 27 System.out.printf("name 的数据为: %s\n", jedis.get("name")); 28 29 // 追加字符 30 jedis.append("name", " 这是我的英文名字缩写!"); 31 System.out.println("name >> " + jedis.get("name")); 32 33 // 删除键 34 Long result = jedis.del("top"); 35 System.out.println(result > 0 ? "删除 top 成功!" : "删除 top 失败!"); // 1表示成功, 0表示失败。 36 37 // 设置多个键值对 38 jedis.mset("age", "13", "addr", "上海市"); 39 System.out.println(jedis.mget("name", "age", "addr")); 40 } 41 42 // Redis Java List(列表) 实例 43 @Test 44 public void testList(){ 45 // 存储数据到redis的list中 46 jedis.lpush("c-list", "china"); 47 jedis.lpush("c-list", "Google"); 48 jedis.lpush("c-list", "Taobao"); 49 50 // 获取数据并遍历输出 51 //你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。 52 List<String> list = jedis.lrange("c-list",0, -1); 53 for (String clist : list) { 54 System.out.printf("list in redis name c-list: %s\n", clist); 55 } 56 57 // lpushx key value 将一个值插入到已存在的列表头部 58 jedis.lpushx("c-list", "tongren"); 59 System.out.println(jedis.lrange("c-list", 0, -1)); 60 61 //rpush key value1 [value2] 在列表中添加一个或多个值 62 jedis.rpush("c-list", "lw", "dx"); 63 System.out.println(jedis.lrange("c-list", 0, -1)); 64 } 65 66 // Redis java Set 67 @Test 68 public void testSet() { 69 // 获取数据并输出 70 Set<String> keys = jedis.keys("*"); 71 Iterator<String> it = keys.iterator(); 72 while (it.hasNext()) { 73 String key = it.next(); 74 System.out.println(key); 75 } 76 77 //向集合添加一个或多个成员 78 jedis.sadd("webSite", "阿里巴巴", "腾讯"); 79 jedis.sadd("webSite", "网易"); 80 //SCARD key 获取集合的成员数 81 System.out.println(jedis.scard("webSite")); 82 //SMEMBERS key 返回集合中的所有成员 返回类型列表[阿里巴巴, 腾讯, 网易]注意顺序不唯一 83 System.out.println(jedis.smembers("webSite")); 84 //SSCAN key cursor [MATCH pattern] [COUNT count] 迭代集合中的元素 85 System.out.println(jedis.sscan("webSite", 0)); 86 } 87 88 // Redis java Hash 89 @Test 90 public void testHash() { 91 Map<String, String> map = new HashMap<>(); 92 map.put("name", "lw"); 93 map.put("age", "22"); 94 95 // hmset 将 map 存入redis中 96 jedis.hmset("user", map); 97 98 // hmget 读取map数据 99 System.out.println(jedis.hmget("user", "name", "age")); 100 101 // hkeys 读取 map 中的所有 keys 102 System.out.println(jedis.hkeys("user")); 103 // hvals 读取 map 中的所有 value 104 System.out.println(jedis.hvals("user")); 105 // hlen 获取 map 中的有多少个字段 106 System.out.println(jedis.hlen("user")); 107 108 //获取所有的键 迭代操作 109 Iterator<String> iterator = jedis.hkeys("user").iterator(); 110 while(iterator.hasNext()){ 111 String key = iterator.next(); 112 System.out.println(key + " : " + jedis.hmget("user", key)); 113 } 114 } 115 116 //sorted set有序Set 117 @Test 118 public void testSortSet() { 119// Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。 120// 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。 121// 有序集合的成员是唯一的,但分数(score)却可以重复。 122 jedis.zadd("city", 0, "北京"); 123 jedis.zadd("city", 1, "上海"); 124 jedis.zadd("city", 1, "上海2"); 125 jedis.zadd("city", 2, "杭州"); 126 127 //ZCARD key 获取有序集合的成员数 128 System.out.println( jedis.zcard("city") ); 129 //ZREVRANK key member 返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序 java中的方法是zrevrangeByScore 130 //2指的是最大的分数 131 Set<String> a = jedis.zrevrangeByScore("city", 2, 0); 132 System.out.println( a ); 133 } 134 135}

View Code

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )