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"));
    }
}