
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项目,并导入相关依赖
redis.clients
jedis
4.0.1
2、使用Java代码连接Redis 6379
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 l = jedis.lrange("list1", 0, -1);
for (String s : l) {
System.out.println(s);
}
}
}
用java代码 *** 作Redis的Hash
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 s = 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();
}
}
用java代码 *** 作Redis的Set
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 s1 = 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();
}
}
用java代码 *** 作Redis的有序集合SortedSet
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 s = jedis.zunionWithScores(new ZParams().aggregate(ZParams.Aggregate.SUM), "zs1", "zs2");
System.out.println(s);
}
@After
// 表示在@Test方法执行完成之后执行
public void closed() {
jedis.close();
}
}
用java代码 *** 作Redis的去重HyperLogLog
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");
Map map = cluster.hgetAll("chs1");
for (Map.Entry kv : map.entrySet()) {
System.out.println(kv.getKey());
System.out.println(kv.getValue());
}
cluster.close();
}
}
到底啦!靓仔的文章对你有帮助的话给波关注吧!╰(°▽°)╯
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)