redis(单机版)安装部署以及java调用工具类

  将下载好的redis-3.2.2.tar.gz上传到linux服务器 /lamp,进行解压解压

    tar -zxvf redis-3.2.2.tar.gz

  网址:

 

2. 进行编译

    cd redis-3.2.2

    make

  make这一步可能会报错,如果报错,可以尝试使用如下命令来编译:

    make MALLOC=libc

  ( 注意:make指令是需要linux下安装gcc的 如果没有gcc可以尝试安装

yum -y install gcc )

编译好的二进制文件会放到src/目录下,可以看到有redis-server和redis-cli,这是redis的服务端和客户端,我们到时候可以直接运行这两个文件即可启动服务端和客户端

 

3. 创建目录移动文件、便于管理:

    mkdir –p /usr/local/redis/bin 放命令

    mkdir –p /usr/local/redis/etc放配置文件

然后将上面src目录下的命令和配置文件分别移动到对应的目录

     mv /lamp/redis-3.2.2/redis.conf /usr/local/redis/etc

     cd /lamp/redis-3.2.2/src

     mv mkreleasdhdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli  redis-server /usr/local/redis/bin

 

4. 启动redis服务:

进入到/usr/local/redis/bin目录下,执行

     ./redis-server /usr/local/redis/etc/redis.conf

  这是根据配置文件redis.conf来启动redis服务,但是默认是前台启动的,会占用我的session,如果想要后台启动redis,还需要修改一下redis.conf的配置,打开该配置文件:

      vi /usr/local/redis/etc/redis.conf

然后将daemonize no改为yes,然后再启动一下redis服务就可以后台启动了,然后我们可以查看一下是否启动成功:

      ps -ef | grep redis 查看是否启动成功

      netstat -tunpl | grep 6379 查看该端口有没有占用

 

 5. 启动redis客户端:(在redis.conf 中增加 requirepass = ylx (密码))

redis客户端命令也在bin目录下,是redis-cli文件,运行一下即可启动redis客户端:

      ./redis-cli -a ylx

随便往里面插入一个name为test测试一下,可以正常获取,说明客户端没有问题。

      set name test

      get name

退出客户端的话直接quit即可。

 

6. 关闭redis服务:

        关闭redis服务的话直接使用如下命令即可:

            pkill redis-server

 

 

 

java调用工具类

 

   配置文件   application.properties

#redis
redis.ip=192.168.203.13
redis.auth=ylx
redis.port=6379
redis.timeout=10000
redis.MaxTotal=200
redis.MaxIdle=200
redis.MinIdle=0
redis.MaxWaitMillis=-1
redis_list_len=100000


1. 加载redis配置文件

package com.eversec.pierce.redis;

import com.eversec.pierce.util.PropertiesLoader;

public class RedisConfig {

/**
* 加载redis配置文件
*/
private static PropertiesLoader propertiesLoader = null;
static{
propertiesLoader = new PropertiesLoader("application.properties");
String active=propertiesLoader.getProperty("spring.profiles.active");
propertiesLoader = new PropertiesLoader("application-"+active+".properties");
}

public static String getRedisConfig(String key){
return propertiesLoader.getProperty(key);
}
}

2. 维护redis连接池资源

package com.eversec.pierce.redis;

import java.io.Serializable;
import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
* 维护redis连接池资源
* @author root
*
*/
public class RedisResources {
private static final Logger logger = LoggerFactory.getLogger(RedisResources.class);
private static String IP = RedisConfig.getRedisConfig("redis.ip");// 连接地址
private static String AUTH = RedisConfig.getRedisConfig("redis.auth");// 认证信息
private static int PORT = Integer.parseInt(RedisConfig.getRedisConfig("redis.port"));
private static int TIMEOUT = Integer.parseInt(RedisConfig.getRedisConfig("redis.timeout"));// 超时时间
private static int MaxTotal = Integer.parseInt(RedisConfig.getRedisConfig("redis.MaxTotal"));
private static int MaxIdle = Integer.parseInt(RedisConfig.getRedisConfig("redis.MaxIdle"));
private static int MinIdle = Integer.parseInt(RedisConfig.getRedisConfig("redis.MinIdle"));
private static int MaxWaitMillis = Integer.parseInt(RedisConfig.getRedisConfig("redis.MaxWaitMillis"));

private static JedisPool jedisPool = null;
/**
* 加载redis连接池
*/
static {
init();
}
private static void init(){
JedisPoolConfig config = new JedisPoolConfig();
//config.setMaxWaitMillis(MAX_WAIT);
//config.setMaxTotal(MAX_ACTIVE);
//config.setMinIdle(MIN_IDLE);
//config.setTestOnBorrow(TEST_ON_BORROW);
//-------------------------------------------------

config.setMaxTotal(MaxTotal);
config.setMaxIdle(MaxIdle);
config.setMinIdle(MinIdle);//设置最小空闲数
config.setMaxWaitMillis(MaxWaitMillis);
//config.setTestOnBorrow(TestOnBorrow);
//config.setTestOnReturn(TestOnReturn);
//Idle时进行连接扫描
//config.setTestWhileIdle(TestWhileIdle);
//表示idle object evitor两次扫描之间要sleep的毫秒数
//config.setTimeBetweenEvictionRunsMillis(TimeBetweenEvictionRunsMillis);
//表示idle object evitor每次扫描的最多的对象数
//config.setNumTestsPerEvictionRun(NumTestsPerEvictionRun);
//表示一个对象至少停留在idle状态的最短时间,然后才能被idle object evitor扫描并驱逐;这一项只有在timeBetweenEvictionRunsMillis大于0时才有意义
//config.setMinEvictableIdleTimeMillis(MinEvictableIdleTimeMillis);

jedisPool = new JedisPool(config,IP,PORT,TIMEOUT,AUTH);
}

/**
* 从连接池里获取redis连接
* @return
*/
public static Jedis getResources(){
int i=0;
Jedis jedis=null;
while(true){
try{
jedis=jedisPool.getResource();
}catch(Exception e){
init();
jedis=jedisPool.getResource();
logger.error("Redis连接失败,第"+i+"次连接");
}
if(jedis != null){
return jedis;
}
}
}
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgzxxx.html