java连接单机redis
1.创建一个普通maven工程
2.引入依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.8.0</version>
</dependency>
3.测试
package demo01;
import redis.clients.jedis.Jedis;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class Redis {
public static void main(String[] args) {
Jedis jedis = new Jedis("192.168.94.131",6379);
String ping = jedis.ping();//测试连通性
System.out.println(ping);
//关于字符串的操作
/* jedis.set("k1", "v1");//存储字符串类型
jedis.mset("k2", "v2", "k3", "v3");//存储多个字符串类型的value
String k1 = jedis.get("k1");//拿到指定key的值
List<String> mget = jedis.mget("k2", "k1");//拿到指定多个key的值
// jedis.setex("k20", 20L, "v20");//设置过期时间
jedis.setnx("k1", "v1");//如果存在指定key,则不存入,如果不存在则存入。
jedis.flushAll();//清空所有库的数据
final Set<String> keys = jedis.keys("*");
System.out.println(keys);
System.out.println(k1+mget);*/
//关于hash的操作
/* jedis.hset("k1", "name", "cjj");//存储hash
final String hget = jedis.hget("k1", "name");//获取hash
System.out.println(hget);
HashMap<String, String> map = new HashMap<>();
map.put("name","ag");
map.put("age","18");
map.put("addr","雨地");
Long k2 = jedis.hset("k2", map);//在一个key中存储多个hash
final Map<String, String> k21 = jedis.hgetAll("k2");//拿到指定hashmap下的所有值
System.out.println(k21);
jedis.flushAll();
final Set<String> keys = jedis.keys("*");
System.out.println(keys);*/
//关于list的操作
/* jedis.rpush("k1","cjj","aguang","xiaodidi");//在列表中添加一个或多个值,从右往左
final String k1 = jedis.lindex("k1", 0);//获取列表中指定下标的元素
System.out.println(k1);
List<String> lrange = jedis.lrange("k1",0,-1);//获取一定范围的元素,第一个为0 最后为-1
System.out.println(lrange);
final String k11 = jedis.lpop("k1");//移除左边第一个元素
System.out.println(k11);
final String lset = jedis.lset("k1", 2, "替换的元素");//替换指定位置的元素内容
List<String> lrange2 = jedis.lrange("k1",0,-1);//获取一定范围的元素,第一个为0 最后为-1
System.out.println(lrange2);
jedis.flushAll();
final Set<String> keys = jedis.keys("*");
System.out.println(keys);*/
//关于set的操作
/* jedis.sadd("k1", "v1", "v2", "v1");//在集合中添加一个或多个值
jedis.sadd("k2", "v1", "v2", "v1","v5");
final Set<String> k1 = jedis.smembers("k1");//获取集合中指定key的所有元素
final Set<String> sinter = jedis.sinter("k1", "k2");//返回给定所有集合的交集
System.out.println(sinter);
final Set<String> sdiff = jedis.sdiff("k2", "k1");//返回给定所有集合的差集
System.out.println(sdiff);
jedis.flushAll();*/
jedis.close();
}
}
java通过连接池连接redis
连接池的作用:减少频繁创建和销毁连接对象
package demo01;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class Redis02 {
public static void main(String[] args) {
//配置连接池对象信息
final JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMinIdle(5);//设置连接池最小的空闲数
poolConfig.setMaxIdle(10);//当没人连接redis服务器时,该池子最多能空闲几个连接对象
poolConfig.setMaxTotal(16);//当有人连接redis服务器时,该池子最大能生成多少个连接对象
//创建连接池对象
final JedisPool jedisPool = new JedisPool(poolConfig, "192.168.94.131", 6379);
final long l = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
final Jedis resource = jedisPool.getResource();//拿到连接对象
resource.ping();
resource.close();//返还连接对象
}
final long l1 = System.currentTimeMillis();
System.out.println("耗时"+(l-l1));//测试1000次的耗时
}
}
java连接redis集群
package demo01;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
public class Redis03 {
public static void main(String[] args) {
//必须是所有的redis服务器
final HostAndPort hostAndPort = new HostAndPort("192.168.94.131", 7001);
final HostAndPort hostAndPort2 = new HostAndPort("192.168.94.131", 7002);
final HostAndPort hostAndPort3 = new HostAndPort("192.168.94.131", 7003);
final HostAndPort hostAndPort4 = new HostAndPort("192.168.94.131", 7004);
final HostAndPort hostAndPort5 = new HostAndPort("192.168.94.131", 7005);
final HostAndPort hostAndPort6 = new HostAndPort("192.168.94.131", 7006);
Set<HostAndPort> hostAndPorts = new HashSet<>();
hostAndPorts.add(hostAndPort);
hostAndPorts.add(hostAndPort2);
hostAndPorts.add(hostAndPort3);
hostAndPorts.add(hostAndPort4);
hostAndPorts.add(hostAndPort5);
hostAndPorts.add(hostAndPort6);
final JedisCluster jedisCluster = new JedisCluster(hostAndPorts);//集群对象
jedisCluster.set("k1","v1");
jedisCluster.set("k2","v2");
jedisCluster.set("k3","v3");
jedisCluster.set("k4","v4");
jedisCluster.set("k5","v5");
jedisCluster.set("k6","v6");
jedisCluster.set("k7","v7");
jedisCluster.set("k8","v8");
}
}