使用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. 关闭防火墙

如果你的系统上没有安装使用命令安装

#yum install firewalld  //安装firewalld 防火墙

开启服务

# systemctl start firewalld.service

关闭防火墙

# systemctl stop firewalld.service

开机自动启动

# systemctl enable firewalld.service

关闭开机制动启动

# systemctl disable firewalld.service

查看状态

#systemctl status firewalld

得到到的结果如果是

● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2016-09-05 02:34:07 UTC; 15min ago
Main PID: 3447 (firewalld)
CGroup: /system.slice/firewalld.service
└─3447 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Sep 05 02:34:07 vultr.guest systemd[1]: Starting firewalld - dynamic firewall daemon...
Sep 05 02:34:07 vultr.guest systemd[1]: Started firewalld - dynamic firewall daemon.

这样的说明没有问题

设置 firwall

使用firewall-cmd 命令

查看状态

#firewall-cmd --state    //running 表示运行

3. 这时候java客户端调用, 或者telnet还有权限问题

解决方案,可以设为非保护模式,  或者设置密码

非保护模式简单暴力,redis.conf里面设置protected-mode 为no

设置密码:

使用jedis操作redis

二 最简单调用

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();
}
上一篇:JMeter数据库操作详解


下一篇:Caused by: java.lang.ClassNotFoundException: org.springframework.boot.bind.RelaxedPropertyResolver