摘要: Redis是目前业界非常受到欢迎的一个内存数据库,一般用作系统的中间缓存系统,用以提升整体商业系统的吞吐量和响应速度。本文将简要介绍安装的主要过程以及给出一个简要的测试代码。

------------------------------编辑推荐------------------------------

Redis集群明细文档 http://www.linuxidc.com/Linux/2013-09/90118.htm

Ubuntu 12.10下安装Redis(图文详解)+ Jedis连接Redis http://www.linuxidc.com/Linux/2013-06/85816.htm

Redis系列-安装部署维护篇 http://www.linuxidc.com/Linux/2012-12/75627.htm

CentOS 6.3安装Redis http://www.linuxidc.com/Linux/2012-12/75314.htm

Redis配置文件redis.conf 详解 http://www.linuxidc.com/Linux/2013-11/92524.htm

------------------------------编辑推荐------------------------------

1.  系统环境和版本说明

Linux操作系统选用Ubuntu 14.04, Redis的版本选取目前的最新稳定版本2.8.9。 客户端选用了Redis的Java版本jedis 2.4.2。

2.  Redis的安装步骤

a. 下载Redis的安装包

wget http://download.redis.io/releases/redis-2.8.9.tar.gz


ubuntu 安装redis 之后没有bin目录_redis

b. 在目录下,解压按照包,生成新的目录redis-2.8.9

tar xvfz redis-2.8.9.tar.gz


ubuntu 安装redis 之后没有bin目录_Redis_02

c.  进入解压之后的目录,进行编译

cd redis-2.8.9


ubuntu 安装redis 之后没有bin目录_redis_03

sudo make


ubuntu 安装redis 之后没有bin目录_System_04

说明: 如果没有明显的错误,则表示编译成功

d.  安装

sudo make install


ubuntu 安装redis 之后没有bin目录_redis_05

说明: 一般情况下,在Ubuntu系统中,都是需要使用sudo提升权限的

e.  在安装成功之后,可以运行测试,确认Redis的功能是否正常

sudo make test


ubuntu 安装redis 之后没有bin目录_redis_06


ubuntu 安装redis 之后没有bin目录_System_07

f. 启动Redis服务

查找Redis安装的目录: find / -name 'redis*' ------ 在根目录下查找名称中含有redis的文件

经过查找,发现Redis被安装到了/usr/local/bin/目录下。

接下来,启动Redis服务:

/usr/local/bin/redis-server


ubuntu 安装redis 之后没有bin目录_redis_08


ubuntu 安装redis 之后没有bin目录_System_09

说明: 从以上的截图中,可以发现启动的端口为缺省的6379. 用户可以在启动的时候,指定具体的配置文件,并在其中指定启动的端口。

g. 查看Redis进程

ps -ef | grep redis


ubuntu 安装redis 之后没有bin目录_redis_10

说明: 如果可以看到进程,说明启动正常。

3. 简单的Redis测试程序

读者可以自行创建Eclipse项目,引入jedis的客户端包,测试程序如下:

public class RedisTest {
  private Jedis jedis = null;
  private String key1 = "key1";
  private String key2 = "key2";  public RedisTest() {
   jedis = new Jedis("localhost");
  }  public static void main(String[] args) {
   RedisTest redisTest = new RedisTest();
   redisTest.isReachable();
   redisTest.testData();
   redisTest.delData();
   redisTest.testExpire();
  }  public boolean isReachable() {
   boolean isReached = true;
   try {
    jedis.connect();
    jedis.ping();
    // jedis.quit();
   } catch (JedisConnectionException e) {
    e.printStackTrace();
    isReached = false;
   }   System.out
     .println("The current Redis Server is Reachable:" + isReached);
   return isReached;
  }  public void testData() {
   jedis.set("key1", "data1");   System.out.println("Check status of data existing:"
     + jedis.exists(key1));
   System.out.println("Get Data key1:" + jedis.get("key1"));   long s = jedis.sadd(key2, "data2");
   System.out.println("Add key2 Data:" + jedis.scard(key2)
     + " with status " + s);
  }  public void delData() {
   long count = jedis.del(key1);   System.out.println("Get Data Key1 after it is deleted:"
     + jedis.get(key1));
  }  public void testExpire() {
   long count = jedis.expire(key2, 5);   try {
    Thread.currentThread().sleep(6000);
   } catch (InterruptedException e) {    
    e.printStackTrace();
   }   if (jedis.exists(key2)) {
    System.out
      .println("Get Key2 in Expire Action:" + jedis.scard(key2));
   } else {
    System.out.println("Key2 is expired with value:"
      + jedis.scard(key2));
   }
  } }