Redis学习存档(2)——通过Java使用Redis:Jedis
一、创建项目,引入jedis jar包
可在百度搜索maven repository
进入后搜索jedis,复制依赖包到pom.xml文件中
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.maven.redis</groupId> <artifactId>Redis</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <properties> <!-- 字符编码UTF-8 --> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!-- junit版本 --> <junit.version>4.9</junit.version> <!-- jedis版本 --> <jedis.version>2.9.0</jedis.version> </properties> <dependencies> <!-- junit架包 --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> <!-- jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>${jedis.version}</version> </dependency> </dependencies> </project>
二、连接到Redis
package com.maven.redis; import org.junit.Test; import redis.clients.jedis.Jedis; public class RedisTest { @Test public void testConnect(){//连接 //创建jedis对象 ip+端口号 Jedis jedis = new Jedis("192.168.214.140", 6379); //ping一下 String result = jedis.ping(); //输出ping结果 System.out.println(result); //关闭连接 jedis.close(); } }
结果如下图
三、操作String类型的数据
package com.maven.redis; import org.junit.Test; import redis.clients.jedis.Jedis; public class RedisTest { @Test public void testString(){//String //创建jedis对象 ip+端口号 Jedis jedis = new Jedis("192.168.214.140", 6379); //存入 jedis.set("one", "1"); //读取 System.out.println("存入:" + jedis.get("one")); //更改 jedis.set("one", "111"); System.out.println("更改:" + jedis.get("one")); //删除 jedis.del("one"); System.out.println("删除:" + jedis.get("one")); //关闭连接 jedis.close(); } }
结果如下图
四、操作List类型的数据
package com.maven.redis; import org.junit.Test; import redis.clients.jedis.Jedis; public class RedisTest { @Test public void testList(){//List //创建jedis对象 ip+端口号 Jedis jedis = new Jedis("192.168.214.140", 6379); //存入 //从右边插入 jedis.rpush("mylist", "java", "c", "python", "java"); /* 等价于 jedis.rpush("mylist", "java"); jedis.rpush("mylist", "c"); jedis.rpush("mylist", "python"); jedis.rpush("mylist", "java"); */ System.out.println("第一次存入:" + jedis.lrange("mylist", 0, -1)); //从左边插入 jedis.lpush("mylist", "delphi"); System.out.println("第二次存入:" + jedis.lrange("mylist", 0, -1)); //更改index=2的元素 jedis.lset("mylist", 2, "c++"); System.out.println("更改index=2的元素:" + jedis.lrange("mylist", 0, -1)); //删除所有java元素 jedis.lrem("mylist", 0, "java"); System.out.println("删除所有java元素:" + jedis.lrange("mylist", 0, -1)); //删除List中第一个元素 jedis.lpop("mylist");//rpop即为删除最后一个元素 System.out.println("删除第一个元素:" + jedis.lrange("mylist", 0, -1)); //删除List jedis.del("mylist"); System.out.println("删除List:" + jedis.lrange("mylist", 0, -1)); //关闭连接 jedis.close(); } }
结果如下图
五、操作Set类型的数据
package com.maven.redis; import org.junit.Test; import redis.clients.jedis.Jedis; public class RedisTest { @Test public void testSet(){//Set //创建jedis对象 ip+端口号 Jedis jedis = new Jedis("192.168.214.140", 6379); //存入 jedis.sadd("myset", "java", "c", "python", "delphi"); //读取 System.out.println("存入:" + jedis.smembers("myset")); //判读c++是否存在Set中 System.out.print("是否存在c++:"); if(jedis.sismember("myset", "c++")){ System.out.println("have c++"); } else { System.out.println("no c++"); } //删除delphi元素 jedis.srem("myset", "delphi"); System.out.println("删除:" + jedis.smembers("myset")); //存入一个新Set jedis.sadd("newset", "c++", "c#", "c", ".net"); //取两集合的并集 System.out.println("并集:" + jedis.sunion("myset", "newset")); //取两集合的交集 System.out.println("交集:" + jedis.sinter("myset", "newset")); //删除Set jedis.del("myset"); jedis.del("newset"); System.out.println("删除set:" + jedis.smembers("myset")); //关闭连接 jedis.close(); } }
结果如下图
六、操作Sorted Set类型的数据
package com.maven.redis; import java.util.HashMap; import java.util.Map; import org.junit.Test; import redis.clients.jedis.Jedis; public class RedisTest { @Test public void testSortedSet(){//Sorted Set //创建jedis对象 ip+端口号 Jedis jedis = new Jedis("192.168.214.140", 6379); //存入 Map<String, Double> map = new HashMap<String, Double>(); map.put("c", 2.0); map.put("java", 1.0); map.put("python", 3.0); jedis.zadd("sorted", map); //读取 System.out.println(jedis.zrange("sorted", 0, -1)); //删除c元素 jedis.zrem("sorted", "c"); System.out.println(jedis.zrange("sorted", 0, -1)); //删除Sorted Set jedis.del("sorted"); System.out.println(jedis.zrange("sorted", 0, -1)); //关闭连接 jedis.close(); } }
结果如下图
七、操作hashes类型的数据
package com.maven.redis; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import org.junit.Test; import redis.clients.jedis.Jedis; public class RedisTest { @Test public void testHashes(){ //创建jedis对象 ip+端口号 Jedis jedis = new Jedis("192.168.214.140", 6379); //存入 jedis.hset("myhash", "name", "张三"); jedis.hset("myhash", "age", "18"); //读取 //方式一 Map<String, String> hash = jedis.hgetAll("myhash"); Set<Entry<String, String>> entry = hash.entrySet(); for (Entry<String, String> e : entry) { System.out.println(e.getKey() + "===" + e.getValue()); } //方式二 System.out.println("name===" + jedis.hget("myhash", "name")); System.out.println("age===" + jedis.hget("myhash", "age")); //更改age字段值 jedis.hset("myhash", "age", "20"); System.out.println("age===" + jedis.hget("myhash", "age")); //删除age字段 jedis.hdel("myhash", "age"); System.out.println("age===" + jedis.hget("myhash", "age")); //删除hashes jedis.del("myhash"); System.out.println("name===" + jedis.hget("myhash", "name")); //关闭连接 jedis.close(); } }
结果如下图