Redis之jedis的使用
引入依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>compile</scope>
</dependency>
Jedis–单机版
public class JedisDemoTest {
private Jedis jedis;
@Before
public void startBefore() {
//创建Jedis对象 需要指定服务端的ip及端口
jedis = new Jedis("127.0.0.1", 6379);
//权限认证
//jedis.auth("123456");
jedis.ping();
}
}
redis存储字符串
@Test
public void setString() {
jedis.setex("name", 20, "小白");
String value = jedis.get("name");
System.out.println(value);
//拼接
jedis.append("name", " , 你好.");
System.out.println(jedis.get("name"));
//删除某个键
jedis.del("name");
System.out.println(jedis.get("name"));
//设置多个键值对
jedis.mset("name", "小白", "age", "20");
//进行加1操作
jedis.incr("age");
System.out.println(jedis.get("name") + "-" + jedis.get("age"));
//关闭Jedis
jedis.close();
}
redis操作Map
@Test
public void setMap() {
Map<String, String> map = new HashMap<>();
map.put("name", "小白");
map.put("age", "20");
jedis.hmset("user", map);
//取值
List<String> rsmap = jedis.hmget("user", "name", "age");
System.out.println(rsmap);
//删除map中的某个键值
jedis.hdel("user", "age");
//返回null
System.out.println(jedis.hmget("user", "age"));
//返回key为user的键中存放的值的个数
System.out.println(jedis.hlen("user"));
//是否存在key为user的记录
System.out.println(jedis.exists("user"));
//返回map对象中的所有key
System.out.println(jedis.hkeys("user"));
//返回map对象中的所有value
System.out.println(jedis.hvals("user"));
//迭代key
Iterator<String> iter = jedis.hkeys("user").iterator();
while (iter.hasNext()) {
String key = iter.next();
System.out.println(key + ":" + jedis.hmget("user", key));
}
//关闭Jedis
jedis.close();
}
jedis操作List
@Test
public void setList() {
jedis.lpush("list", "小白");
jedis.lpush("list", "大白");
jedis.lpush("list", "白白");
//lrange:按范围取,第一个是key,第二个是起始位置,第三个是结束位置,-1表示取得所有
System.out.println(jedis.lrange("list", 0, -1));
jedis.del("list");
jedis.rpush("list", "小白");
jedis.rpush("list", "大白");
jedis.rpush("list", "白白");
System.out.println(jedis.lrange("list", 0, -1));
//关闭Jedis
jedis.close();
}
jedis操作Set
@Test
public void setSet() {
jedis.sadd("user","小白");
jedis.sadd("user","大白");
jedis.sadd("user","白白");
//移除
jedis.srem("user","大白");
//获取所有加入的value
System.out.println(jedis.smembers("user"));
//判断小白是否是user集合的元素
System.out.println(jedis.sismember("user", "小白"));
//返回集合中一个或多个随机数
System.out.println(jedis.srandmember("user"));
//返回集合的元素个数
System.out.println(jedis.scard("user"));
//关闭Jedis
jedis.close();
}
jedis操作sortedset
@Test
public void sort() {
jedis.del("sort");
jedis.rpush("sort", "1");
jedis.lpush("sort", "5");
jedis.lpush("sort", "3");
jedis.lpush("sort", "9");
//[9, 3, 5, 1]
System.out.println(jedis.lrange("sort", 0, -1));
//[1, 3, 5, 9]
System.out.println(jedis.sort("sort"));
//[9, 3, 5, 1]
System.out.println(jedis.lrange("sort", 0, -1));
//关闭Jedis
jedis.close();
}
Jedis–单机版使用连接池
直接测试
private Jedis jedis;
@Before
public void startBefore() {
// 创建连接池配置对象
JedisPoolConfig jedisPoolConfig=new JedisPoolConfig();
// 设置最大连接数,默认值8
jedisPoolConfig.setMaxIdle(5);
// 设置最大空闲数,默认值8
jedisPoolConfig.setMaxIdle(5);
// 设置最小空闲数,默认值0
jedisPoolConfig.setMinIdle(0);
// 设置等待时间 ms
jedisPoolConfig.setMaxWaitMillis(100);
//创建一个JedisPool对象 指定服务端的ip及端口。
JedisPool jedisPool = new JedisPool(jedisPoolConfig,"127.0.0.1", 6379,100,"123456");
//从JedisPool中获得Jedis对象
jedis = jedisPool.getResource();
//操作完毕后关闭jedis对象,连接池回收资源
// jedis.close();
//关闭JedisPool对象
//jedisPool.close();
}
@Test
public void setString() {
jedis.setex("name", 20, "小白");
String value = jedis.get("name");
System.out.println(value);
//关闭Jedis
jedis.close();
}
集成Spring
<!-- 配置单机版的连接 -->
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="host" value="127.0.0.1"></constructor-arg>
<constructor-arg name="port" value="6379"></constructor-arg>
</bean>
@Autowired
private JedisPool jedisPool;
public String set(String key, String value) {
Jedis jedis = jedisPool.getResource();
String result = jedis.set(key, value);
jedis.close();
return result;
}
Jedis– 集群版
直接测试
private JedisCluster jedis;
@Before
public void startBefore() {
//添加集群的服务节点Set集合
Set<HostAndPort> hostAndPortsSet = new HashSet<HostAndPort>();
//添加节点
hostAndPortsSet.add(new HostAndPort("127.0.0.1", 6379));
hostAndPortsSet.add(new HostAndPort("127.0.0.1", 6380));
hostAndPortsSet.add(new HostAndPort("127.0.0.1", 6381));
//Jedis连接池配置
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
//最大空闲连接数, 默认8个
jedisPoolConfig.setMaxIdle(100);
//最大连接数, 默认8个
jedisPoolConfig.setMaxTotal(500);
//最小空闲连接数, 默认0
jedisPoolConfig.setMinIdle(0);
//获取连接时的最大等待毫秒数(如果设置为阻塞时BlockWhenExhausted),如果超时就抛异常, 小于零:阻塞不确定的时间, 默认-1
jedisPoolConfig.setMaxWaitMillis(2000);
//对拿到的connection进行validateObject校验
jedisPoolConfig.setTestOnBorrow(true);
jedis = new JedisCluster(hostAndPortsSet, jedisPoolConfig);
//关闭JedisCluster对象。
//jedis.close();
}
@Test
public void setString() {
jedis.setex("name", 20, "小白");
String value = jedis.get("name");
System.out.println(value);
//关闭Jedis
jedis.close();
}
集成Spring
<!-- 集群版的配置 -->
<bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">
<constructor-arg>
<set>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="127.0.0.1"></constructor-arg>
<constructor-arg name="port" value="6379"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="127.0.0.1"></constructor-arg>
<constructor-arg name="port" value="6380"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg name="host" value="127.0.0.1"></constructor-arg>
<constructor-arg name="port" value="6381"></constructor-arg>
</bean>
</set>
</constructor-arg>
</bean>
@Autowired
private JedisCluster jedisCluster;
public String set(String key, String value) {
return jedisCluster.set(key, value);
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/137161.html