使用jedis操作redis
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用jedis操作redis相关的知识,希望对你有一定的参考价值。
一 连通性
1. 简单代码测试连通性
Jedis jedis = new Jedis(".......", 6379); String keys = "name"; // 删数据 jedis.del(keys); // 存数据 jedis.set(keys, "snowolf"); // 取数据 String value = jedis.get(keys);
报错超时, 且windows下的cmd测试相关端口 telnet 10.11.20.140 6379 失败
2. 关闭防火墙
CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙。
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall -cmd --status #查看状态, not running
3. 这时候java客户端调用, 或者telnet还有权限问题
解决方案,可以设为非保护模式, 或者设置密码
非保护模式简单暴力,redis.conf里面设置protected-mode 为no
设置密码:
二 最简单调用
java操作redis,只需要加上jedis.auth(passwd)即可
Jedis jedis = new Jedis("192.168.118.4", 6379); jedis.auth("123"); String keys = "name"; // 删数据 jedis.del(keys); // 存数据 jedis.set(keys, "snowolf"); // 取数据 String value = jedis.get(keys);
三 配置池调用
public static JedisPool jedisPool; static{ // 在web中,还可以用 ResourceBundle bundle = ResourceBundle.getBundle("redis-config"); if (bundle == null) { throw new IllegalArgumentException( "[redis.properties] is not found!"); } JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(Integer.valueOf(bundle .getString("redis.pool.maxTotal"))); config.setMaxIdle(Integer.valueOf(bundle .getString("redis.pool.maxIdle"))); config.setTestOnBorrow(Boolean.valueOf(bundle .getString("redis.pool.testOnBorrow"))); config.setTestOnReturn(Boolean.valueOf(bundle .getString("redis.pool.testOnReturn"))); jedisPool = new JedisPool(config, bundle.getString("redis.ip"), Integer.valueOf(bundle.getString("redis.port")), 2000, bundle.getString("redis.password")); }
@Test /** * 使用pool,在beans.xml配置池 */ public void testPool() { // 从池中获取一个Jedis对象 Jedis jedis = RedisUtil.jedisPool.getResource(); String keys = "name"; //若干操作 // 释放对象池 // RedisUtil.jedisPool.returnResource(jedis); jedis.close(); }
以上是关于使用jedis操作redis的主要内容,如果未能解决你的问题,请参考以下文章