help
没看见
很明显,没有与redis-server 连接上
redis 里面配置文件的属性daemonize是否更改为yes?是否用修改后的配置文件重启启动redis?
没法获取吧,需要自己从其他网上找资源。付费的可能会有详细的课程资源
修改redis-config文件,找到 bind 127.0.01,改成自己配置的IP地址
使用JedisPoolConfig了吗?是不是连接池没有可用链接了?
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
// 设置最大连接数
jedisPoolConfig .setMaxTotal(3000); // 可以创建3000jedis实例
// 设置最大空闲连接数
jedisPoolConfig .setMaxIdle(300);
//等待可用连接的最大时间
jedisPoolConfig .setMaxWaitMillis(10000);
//在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的
jedisPoolConfig .setTestOnBorrow(true);
//创建JedisPool
JedisPool jedisPool = new JedisPool(jedisPoolConfig , "url", port);
//获取Jedis
Jedis jedis = jedisPool.getResource();
//jedis操作
//关闭连接
jedis.close();
jedisPool .close();
希望有用
查看下是否是6379的端口没有开放出来
jedisPool = new JedisPool(config, "ip地址", 端口号, 10000,"密码");
密码可以在redis.config里设置
要保证唯一啊。确保key值唯一需要系统整体同一制定规则来保证
是啊,要使用main方法吗?
嗯,确实是redis
我之前也是,如果你用的是redis3.2之後的版本,首先看看protected-mode這個配置有沒有配,大概在80行左右,將其設置為NO。如果你用的不是虛擬機,是阿里雲的服務器的話,需要設置入棧規則。
有的 就在最上面部分 你仔细找找 用vim打开找直观一点
//创建连接池实例 JedisPool jedisPool = new JedisPool("192.168.0.0.1","6379"); //获得jedis实例 Jedis jedis = jedisPool.getResource(); //存储数据 String result = jedis.set(key, value); //释放jedis实例 jedis.close();
第一个连接的是localhost本地回环,第二个是TCP/IP协议连接。
初始化:new Jedis(host, port)->new BinaryJedis(host, port)->new Client(host, port)->new BinaryClient(host, port)->new Connection(host, port),其中Connection参数默认如下
```java
private static final byte[][] EMPTY_ARGS = new byte[0][]; private String host = "localhost"; private int port = 6379; private Socket socket; private RedisOutputStream outputStream; private RedisInputStream inputStream; private int pipelinedCommands = 0; private int connectionTimeout = 2000; private int soTimeout = 2000; private boolean broken = false; private boolean ssl; private SSLSocketFactory sslSocketFactory; private SSLParameters sslParameters; private HostnameVerifier hostnameVerifier;
```
连接池是存放链接的池塘,方便快速/高效的获取链接,提高代码的执行效率,不明白的话可以先记着,等你学完javSE,随着时间的累积,知识的积累,你就会明白其中的道理。
防火墙未打开
/etc/init.d/iptables stop
redis.conf默认开放的127.0.0.1地址需要修改为0.0.0.0地址才能被其他机器所使用
bind 127.0.0.1修改为bind 0.0.0.0
将端口开放
-A INPUT -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT
以上方法都试试基本就ok了.
jedis关闭的时候,内部会判断是否使用了Pool,如果使用了就执行归还,否则执行关闭。
已解决
建议:首先查看一下,你能否通过SecureCRT客户端,能否SSH, 如果能,而你又在iptables上开启了6379端口的话。应该可以排除是网络问题了。 第二,redis限制,在redis-config 文件中,有个bind,好像是绑定了ip的,这会导致在VM本机上试可以,因为ip是127.0.0.1、 通过secureCRT客户端是属于远程,这个时候把 bind 那一行注释掉,重启Redis 试试。 刚听完整个教程,也实操了一部分。如有答错,敬请原谅
我在eclipse上运行也报错,我端口号在虚拟机上已经开放重启了,你是怎么解决的 ?
centos7跟6关闭防火墙不一样,试试这个:https://www.cnblogs.com/silent2012/archive/2015/07/28/4682770.html这篇博客的,先直接把防火墙关掉试试
可以在redis.conf里设置:
# requirepass foobared
requirepass yourpassword
重新启动redis-server redis.conf
杰迪斯
服务器的ip地址
参考此链接或许有用,我就是靠这位仁兄解决了问题https://blog.csdn.net/jexhen/article/details/76098622
原因:在新安装的Linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件。
解决办法:
1、随便写一条iptables命令配置个防火墙规则:如:
iptables -P OUTPUT ACCEPT
2,进行保存
service iptables save
3,service iptables restart
看一下存入的db 是哪个 然后在虚拟机 select相应的db,进去看一下,应该就有你设置的值了
有可能你linux安装过程中,防火墙没打开