Redis JavaAPI、连接池、Cluster模式
IDEA用Java连接Redis
1、新建Redis的Maven项目,并导入相关依赖2、使用Java代码连接Redis 6379用java代码使用Redis的set、get用java代码 *** 作Redis的String增、删、改、查
首先加入JUnit依赖,方便我们用注解测试增、删、改、查的功能 用java代码 *** 作Redis的List增、删、改、查用java代码 *** 作Redis的Hash用java代码 *** 作Redis的Set用java代码 *** 作Redis的有序集合SortedSet用java代码 *** 作Redis的去重HyperLogLog用java代码 *** 作Redis的连接池ConnectionPool 用java代码 *** 作Redis的集群
用java代码 *** 作Redis的集群ClusterConn
Redis JavaAPI、连接池、Cluster模式 IDEA用Java连接Redis 1、新建Redis的Maven项目,并导入相关依赖2、使用Java代码连接Redis 6379redis.clients jedis4.0.1
1、建立连接2、测试连通性3、关闭Redis
package com.liangzai; import redis.clients.jedis.Jedis; public class RedisDemo1 { public static void main(String[] args) { //1、建立连接 Jedis jedis = new Jedis("master", 6379); //2、测试连通性 System.out.println(jedis.ping()); //关闭Redis连接 jedis.close(); } }
运行结果:
用java代码使用Redis的set、get上面三个红色的是Maven依赖缺包,无需理会,并不影响代码的运行
package com.liangzai; import redis.clients.jedis.Jedis; public class RedisDemo1 { public static void main(String[] args) { //1、建立连接 Jedis jedis = new Jedis("master", 6379); //2、测试连通性 System.out.println(jedis.ping()); String setk4 = jedis.set("k4", String.valueOf(4)); System.out.println(setk4); String getk4 = jedis.get("k4"); System.out.println(getk4); //关闭Redis连接 jedis.close(); } }
运行结果: PONG OK 4
用java代码 *** 作Redis的String增、删、改、查 首先加入JUnit依赖,方便我们用注解测试增、删、改、查的功能在我们实际使用Java代码 *** 作Redis的时候set的值是不用返回的
junit junit4.8.2
package com.liangzai; import org.junit.After; import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedis.args.BitOP; public class RedisString { Jedis jedis; @Before //会在执行@Test修饰的方法之前执行 //建立连接 public void init() { jedis = new Jedis("master", 6379); } @Test //增加一个String类型的value public void set() { jedis.set("j1", "v1"); jedis.set("j2", "v2"); jedis.set("j3", "v3"); } @Test //删除一个k-v public void DEL() { jedis.del("j1"); } @Test //根据k获取v public void GET() { System.out.println(jedis.get("j1")); System.out.println(jedis.get("j2")); System.out.println(jedis.get("j3")); } @Test //创建一个位图 public void SETBIT() { jedis.setbit("b1", 1, true); jedis.setbit("b1", 3, true); } @Test //获取位图 public void GETBIT() { System.out.println("b1"); } @Test //位图的 *** 作 public void BITOPT() { jedis.bitop(BitOP.AND, "b3", "b1", "b2"); jedis.bitop(BitOP.OR, "b4", "b1", "b2"); jedis.bitop(BitOP.NOT, "b5", "b1"); jedis.bitop(BitOP.XOR, "b6", "b1", "b2"); System.out.println(jedis.get("b3")); System.out.println(jedis.get("b4")); System.out.println(jedis.get("b5")); System.out.println(jedis.get("b6")); } @After //表示@Test方法执行完成之后执行 public void closed() { jedis.close(); } }
每个方法上都有一个绿色的三角,点击即可测试当前方法
用java代码 *** 作Redis的List增、删、改、查package com.liangzai; import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jedis; import java.util.List; public class RedisList { Jedis jedis; @Before //会在执行@Test修饰的方法之前执行 public void init() { jedis = new Jedis("master", 6379); } @Test // 创建一个List public void PUSH() { jedis.lpush("list1", "1"); jedis.lpush("list1", "2"); jedis.rpush("list1", "3"); jedis.rpush("list1", "4"); jedis.rpush("list1", "5"); } @Test // 修改List中的元素 public void LSET() { jedis.lset("list1", 4, "5.5"); } @Test // 获取List中的所有元素 public void LRANGE() { List用java代码 *** 作Redis的Hashl = jedis.lrange("list1", 0, -1); for (String s : l) { System.out.println(s); } } }
package com.liangzai; import org.junit.After; import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jedis; import java.util.List; import java.util.Map; import java.util.Set; public class RedisHash { Jedis jedis; @Before // 会在执行@Test修饰的方法之前执行 public void init() { jedis = new Jedis("master", 6379); } @Test // 创建一个Hash散列 public void HSET() { jedis.hset("hash1", "id", "1"); jedis.hset("hash1", "name", "张三"); jedis.hset("hash1", "age", "18"); jedis.hset("hash1", "gender", "男"); jedis.hset("hash1", "clazz", "文科四班"); } @Test // 获取Hash所有的key public void HKEYS() { Set用java代码 *** 作Redis的Sets = jedis.hkeys("hash1"); for (String s1 : s) { System.out.println(s1); } } @Test // 获取Hash所有的Value public void HVALS() { List l = jedis.hvals("hash1"); for (String s : l) { System.out.println(s); } } @Test // 获取Hash所有的K-V public void HGETALL() { Map m = jedis.hgetAll("hash1"); for (Map.Entry kv : m.entrySet()) { System.out.println(kv.getKey()); System.out.println(kv.getValue()); } } @Test // 指定Field获取Value public void HGET() { System.out.println(jedis.hget("hash1", "name")); } @Test // 根据Field删除Value public void HDEL() { jedis.hdel("hash1", "gender"); } @Test // 删除整个Hash散列 public void DEL() { jedis.del("hash1"); } @After // 表示在@Test方法执行完成之后执行 public void closed() { jedis.close(); } }
package com.liangzai; import org.junit.After; import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jedis; import java.util.Set; public class RedisSet { Jedis jedis; @Before // 会在执行@Test修饰的方法之前执行 public void init() { jedis = new Jedis("master", 6379); } @Test // 创建Set public void SADD() { jedis.sadd("s1", "1", "2", "2", "2", "3", "4", "5", "6"); jedis.sadd("s2", "5", "6", "7", "8", "9"); } @Test // 移除元素 public void SREM() { jedis.srem("s1", "1"); jedis.srem("s1", "4"); } @Test // d出一个元素,位置不确定 public void SPOP() { String s1 = jedis.spop("s1"); System.out.println(s1); } @Test // 获取所有的元素 public void SMEMBERS() { Set用java代码 *** 作Redis的有序集合SortedSets1 = jedis.smembers("s1"); for (String s : s1) { System.out.println(s); } } @Test // 集合常见的 *** 作 public void SETOP() { // 交集 System.out.println(jedis.sinter("s1", "s2")); // 并集 System.out.println(jedis.sunion("s1", "s2")); // 差集 System.out.println(jedis.sdiff("s1", "s2")); } @After // 表示在@Test方法执行完成之后执行 public void closed() { jedis.close(); } }
package com.liangzai; import org.junit.After; import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedis.params.ZParams; import redis.clients.jedis.resps.Tuple; import java.util.Set; public class RedisSortedSet { Jedis jedis; @Before // 会在执行@Test修饰的方法之前执行 public void init() { jedis = new Jedis("master", 6379); } @Test // 创建一个有序集合 public void ZADD() { // zs1 表示水果一月份的销量 jedis.zadd("zs1", 10, "西瓜"); jedis.zadd("zs1", 10, "西瓜"); jedis.zadd("zs1", 7, "香蕉"); jedis.zadd("zs1", 7, "香蕉"); jedis.zadd("zs1", 7, "香蕉"); jedis.zadd("zs1", 5, "芒果"); jedis.zadd("zs1", 5, "芒果"); jedis.zadd("zs1", 8, "草莓"); // zs2 表示水果二月份的销量 jedis.zadd("zs2", 9, "哈密瓜"); jedis.zadd("zs2", 6, "西瓜"); jedis.zadd("zs2", 8, "香蕉"); jedis.zadd("zs2", 3, "香蕉"); jedis.zadd("zs2", 5, "香蕉"); jedis.zadd("zs2", 6, "甘蔗"); jedis.zadd("zs2", 7, "芒果"); jedis.zadd("zs2", 8, "草莓"); } @Test // 查看水果的累计销量 public void TwoMonthSUM() { Set用java代码 *** 作Redis的去重HyperLogLogs = jedis.zunionWithScores(new ZParams().aggregate(ZParams.Aggregate.SUM), "zs1", "zs2"); System.out.println(s); } @After // 表示在@Test方法执行完成之后执行 public void closed() { jedis.close(); } }
package com.liangzai; import org.junit.After; import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jedis; public class RedisHyperLogLog { Jedis jedis; @Before // 会在执行@Test修饰的方法之前执行 public void init() { jedis = new Jedis("master", 6379); } @Test public void PFADD() { jedis.pfadd("hll1", "1", "1", "2", "3", "4", "4", "5"); jedis.pfadd("hll2", "1", "3", "4", "7", "4", "8", "5"); } @Test // 求一组数据(可能重复)的基数 public void PFCOUNT() { System.out.println(jedis.pfcount("hll1")); System.out.println(jedis.pfcount("hll2")); } @Test // 合并两个HyperLogLog public void PFMERGE() { jedis.pfmerge("hll3", "hll1", "hll2"); System.out.println(jedis.pfcount("hll3")); } @After // 表示在@Test方法执行完成之后执行 public void closed() { jedis.close(); } }用java代码 *** 作Redis的连接池ConnectionPool
package com.liangzai; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; public class RedisConnectionPool { // Redis连接池 public static void main(String[] args) { // 使用默认的配置创建Redis连接池 JedisPool jedisPool = new JedisPool("master", 6379); // 从连接池中取出一个连接 Jedis jedis = jedisPool.getResource(); // 使用连接进行 *** 作 System.out.println(jedis.lrange("list1", 0, -1)); // 关闭连接 jedis.close(); // 关闭连接池 jedisPool.close(); } }用java代码 *** 作Redis的集群 用java代码 *** 作Redis的集群ClusterConn
package com.liangzai; import redis.clients.jedis.HostAndPort; import redis.clients.jedis.JedisCluster; import java.util.Map; public class RedisClusterConn { public static void main(String[] args) { // 使用JedisCluster与集群进行通信建立连接 JedisCluster cluster = new JedisCluster(new HostAndPort("master", 6381)); cluster.set("cs1", "vv1"); System.out.println(cluster.get("cs1")); cluster.hset("chs1", "f1", "v1"); cluster.hset("chs1", "f2", "v1"); cluster.hset("chs1", "f3", "v1"); Mapmap = cluster.hgetAll("chs1"); for (Map.Entry kv : map.entrySet()) { System.out.println(kv.getKey()); System.out.println(kv.getValue()); } cluster.close(); } }
到底啦!靓仔的文章对你有帮助的话给波关注吧!╰(°▽°)╯
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)