“Jedis 的编程实践”的版本间差异
跳到导航
跳到搜索
(→基础实践) |
(→关于) |
||
第8行: | 第8行: | ||
使用Jedis,可以在 Maven 的 pom 文件中,增加以下依赖: | 使用Jedis,可以在 Maven 的 pom 文件中,增加以下依赖: | ||
: <syntaxhighlight lang=" | : <syntaxhighlight lang="xml" highlight=""> | ||
<dependency> | <dependency> | ||
<groupId>redis.clients</groupId> | <groupId>redis.clients</groupId> | ||
第21行: | 第21行: | ||
* 一个 Jedis 对象代表一条和 Redis 服务进行连接的 Socket 通道。 | * 一个 Jedis 对象代表一条和 Redis 服务进行连接的 Socket 通道。 | ||
* 使用完 Jedis 对象之后,需要调用 '''Jedis.close()''' 方法把连接关闭,否则会占用系统资源。 | * 使用完 Jedis 对象之后,需要调用 '''Jedis.close()''' 方法把连接关闭,否则会占用系统资源。 | ||
创建 Jedis 对象时,可以指定 Redis 服务的 host,port 和 password。大致的伪代码如下: | 创建 Jedis 对象时,可以指定 Redis 服务的 host,port 和 password。大致的伪代码如下: | ||
: <syntaxhighlight lang=" | : <syntaxhighlight lang="Java" highlight=""> | ||
Jedis jedis = new Jedis("localhost", 6379); // 指定Redis服务的主机和端口 | Jedis jedis = new Jedis("localhost", 6379); // 指定Redis服务的主机和端口 | ||
jedis.auth("xxxx"); // 如果Redis服务连接需要密码,就设置密码 | jedis.auth("xxxx"); // 如果Redis服务连接需要密码,就设置密码 |
2021年11月6日 (六) 06:25的版本
关于
Jedis 是一个高性能的 Java 客户端,是 Redis 官方推荐的 Java 开发工具。要在 Java 开发中访问 Redis 缓存服务器,必须对 Jedis 熟悉才能编写出“漂亮”的代码。 Jedis 的项目地址:https://github.com/alphazero/jredis。
使用Jedis,可以在 Maven 的 pom 文件中,增加以下依赖:
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>${redis.version}</version> </dependency>
Jedis 基本的使用十分简单:
- 在每次使用时,构建 Jedis 对象即可。
- 一个 Jedis 对象代表一条和 Redis 服务进行连接的 Socket 通道。
- 使用完 Jedis 对象之后,需要调用 Jedis.close() 方法把连接关闭,否则会占用系统资源。
创建 Jedis 对象时,可以指定 Redis 服务的 host,port 和 password。大致的伪代码如下:
Jedis jedis = new Jedis("localhost", 6379); // 指定Redis服务的主机和端口 jedis.auth("xxxx"); // 如果Redis服务连接需要密码,就设置密码 ... // 访问Redis服务 jedis.close(); // 使用完,就关闭连接
基础实践
Jedis 的 String操作函数、List操作函数、Hash操作函数、Set操作函数、Zset操作函数,和 Redis 客户端的相关操作命令,基本上可以一比一的相互对应。
Jedis 操作 String(字符串)
示例:
package com.crazymakercircle.redis.jedis; //...省略import public class StringDemo { /** * Jedis字符串数据类型的相关命令 */ @Test public void operateString() { Jedis jedis = new Jedis("localhost", 6379); //如果返回 pong 代表链接成功 Logger.info("jedis.ping():" + jedis.ping()); //设置key0的值为 123456 jedis.set("key0", "123456"); //返回数据类型:string Logger.info("jedis.type(key0): " + jedis.type("key0")); //取得值 Logger.info("jedis.get(key0): " + jedis.get("key0")); // key是否存在 Logger.info("jedis.exists(key0):" + jedis.exists("key0")); //返回key的长度 Logger.info("jedis.strlen(key0): " + jedis.strlen("key0")); //返回截取字符串, 范围“0,-1”表示截取全部 Logger.info("jedis.getrange(key0): " + jedis.getrange("key0", 0, -1)); //返回截取字符串, 范围“1,4”表示区间[1,4] Logger.info("jedis.getrange(key0): " + jedis.getrange("key0", 1, 4)); //追加字符串 Logger.info("jedis.append(key0): " + jedis.append("key0", "appendStr")); Logger.info("jedis.get(key0): " + jedis.get("key0")); //重命名 jedis.rename("key0", "key0_new"); //判断key 是否存在 Logger.info("jedis.exists(key0): " + jedis.exists("key0")); //批量插入 jedis.mset("key1", "val1", "key2", "val2", "key3", "100"); //批量取出 Logger.info("jedis.mget(key1,key2,key3): " + jedis.mget("key1", "key2", "key3")); //删除 Logger.info("jedis.del(key1): " + jedis.del("key1")); Logger.info("jedis.exists(key1): " + jedis.exists("key1")); //取出旧值并设置新值 Logger.info("jedis.getSet(key2): " + jedis.getSet("key2", "value3")); //自增1 Logger.info("jedis.incr(key3): " + jedis.incr("key3")); //自增15 Logger.info("jedis.incrBy(key3): " + jedis.incrBy("key3", 15)); //自减1 Logger.info("jedis.decr(key3): " + jedis.decr("key3")); //自减15 Logger.info("jedis.decrBy(key3): " + jedis.decrBy("key3", 15)); //浮点数加 Logger.info("jedis.incrByFloat(key3): " + jedis.incrByFloat("key3", 1.1)); //返回0 只有在key不存在的时候才设置 Logger.info("jedis.setnx(key3): " + jedis.setnx("key3", "existVal")); Logger.info("jedis.get(key3): " + jedis.get("key3"));// 3.1 //只有key都不存在的时候才设置,这里返回 null Logger.info("jedis.msetnx(key2,key3): " + jedis.msetnx("key2", "exists1", "key3", "exists2")); Logger.info("jedis.mget(key2,key3): " + jedis.mget("key2", "key3")); //设置key,2 秒后失效 jedis.setex("key4", 2, "2 seconds is no Val"); try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } // 2 seconds is no Val Logger.info("jedis.get(key4): " + jedis.get("key4")); jedis.set("key6", "123456789"); //第三位之后,用新值覆盖旧值(下标从0开始) jedis.setrange("key6", 3, "abcdefg"); //返回:123abcdefg Logger.info("jedis.get(key6): " + jedis.get("key6")); //返回所有匹配的key Logger.info("jedis.get(key*): " + jedis.keys("key*")); // 关闭连接 jedis.close(); } }
Jedis 操作 List(列表)
示例:
Jedis 操作 Hash(哈希表)
示例:
Jedis 操作 Set(集合)
示例:
Jedis 操作 Zset(有序集合)
示例: