redis問題ノート
4034 ワード
一、redis起動問題
1、起動後、ログファイルに次の警告が表示されます。
a.サーバの割り当てメモリが小さすぎて511以上に変更すればよいが、実際には管理しなくてもよい。
The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128
ソリューション:システムプロファイルsysctlを変更します.conf;方法は次のとおりです.vim /etc/sysctl.conf
net.core.somaxconn= 1024
:sysctl -p #
b、メモリ割り当てポリシーの問題、この警告は気にしなくてもいい
WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
解決策:sysctlを上記の手順と同じように変更します.confファイル、ファイルに次の構成を追加すればいいです.vm.overcommit_memory=1
:0、1、2。
0, ; , ; , , 。
1, , 。
2,
************************END*************************************
二、redisがJava操作を使用する際に発生した問題
1.springを使用してjedisPoolを注入する場合、jedis時報を取得する
redis.clients.jedis.exceptions.JedisException: Could not get a resource from the pool
これはtestOnBorrowを構成してリンクの可用性チェックを行い、redisが権限認証を構成している可能性があります.jedisPoolを注入するときはパスワードを設定する必要があります.具体的なspringプロファイルの読み込み
Javaテスト
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
/**
* redis spring
* Created by vf on 2017/9/20.
*/
public class RedisSpringTest {
private ApplicationContext applicationContext;
@Before
public void setUp(){
String configLocation = "classpath*:spring/applicationContext-redis.xml";
applicationContext = new ClassPathXmlApplicationContext(configLocation);
}
@Test
public void JedisSpringTest() throws Exception{
JedisPool jedisPool = (JedisPool)applicationContext.getBean("jedisPool");
Jedis jedis = jedisPool.getResource();
System.out.println( jedis.get("tmp"));
}
}
The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128
vim /etc/sysctl.conf
net.core.somaxconn= 1024
:sysctl -p #
WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
vm.overcommit_memory=1
:0、1、2。
0, ; , ; , , 。
1, , 。
2,
1.springを使用してjedisPoolを注入する場合、jedis時報を取得する
redis.clients.jedis.exceptions.JedisException: Could not get a resource from the pool
これはtestOnBorrowを構成してリンクの可用性チェックを行い、redisが権限認証を構成している可能性があります.jedisPoolを注入するときはパスワードを設定する必要があります.具体的なspringプロファイルの読み込み
Javaテスト
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
/**
* redis spring
* Created by vf on 2017/9/20.
*/
public class RedisSpringTest {
private ApplicationContext applicationContext;
@Before
public void setUp(){
String configLocation = "classpath*:spring/applicationContext-redis.xml";
applicationContext = new ClassPathXmlApplicationContext(configLocation);
}
@Test
public void JedisSpringTest() throws Exception{
JedisPool jedisPool = (JedisPool)applicationContext.getBean("jedisPool");
Jedis jedis = jedisPool.getResource();
System.out.println( jedis.get("tmp"));
}
}