Redis:客户端

来自Wikioe
跳到导航 跳到搜索


关于

可以通过多种方式使用Redis:客户端、其他语言(如:Java、PHP)等。

客户端

Redis 通过监听一个 TCP 端口或者 Unix socket 的方式来接收来自客户端的连接,当一个连接建立后,Redis 内部会进行以下一些操作:

  1. 首先,客户端 socket 会被设置为非阻塞模式,因为 Redis 在网络事件处理上采用的是非阻塞多路复用模型。【???】
  2. 然后为这个 socket 设置 TCP_NODELAY 属性,禁用 Nagle 算法
  3. 然后创建一个可读的文件事件用于监听这个客户端 socket 的数据发送

客户端命令

命令 描述
CLIENT LIST 返回连接到 redis 服务的客户端列表
CLIENT SETNAME 设置当前连接的名称
CLIENT GETNAME 获取通过 CLIENT SETNAME 命令设置的服务名称
CLIENT PAUSE 挂起客户端连接,指定挂起的时间以毫秒计
CLIENT KILL 关闭客户端连接

关于“最大连接数”

在 Redis 2.4 中,最大连接数是被直接硬编码在代码里面的,而在 2.6 版本中这个值变成可配置的。

  • maxclients 的默认值是 10000
  1. 可以在 redis.conf 中对这个值进行修改:
  • config get maxclients
    
    1) "maxclients"
    2) "10000"
    
  1. 也可以在服务启动时设置:
  • redis-server --maxclients 100000
    

Java

开始在 Java 中使用 Redis 前, 需要确保已经安装了 redis 服务及 Java redis 驱动,且你的机器上能正常使用 Java。

安装驱动

Java 的安装配置可以参考 Java 开发环境配置:

  1. 下载驱动包“jedis.jar”;
  2. 在 classpath 中包含该驱动包。
  • jedis的jar包依赖Maven配置:(jedis也依赖“Apache Commons Pool 2 2.0”)
    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>2.9.0</version>
    </dependency>
    

示例

  1. 连接到 redis 服务:
    import redis.clients.jedis.Jedis;
     
    public class RedisJava {
        public static void main(String[] args) {
            //连接 Redis 服务
            // Jedis jedis = new Jedis("192.168.1.103", 6379);
            Jedis jedis = new Jedis("localhost");
            // 如果 Redis 服务设置了密码,需要下面这行,没有就不需要
            // jedis.auth("123456"); 
            System.out.println("连接成功");
            //查看服务是否运行
            System.out.println("服务正在运行: "+jedis.ping());
        }
    }
    
    连接成功
    服务正在运行: PONG
    
  2. Redis Java String(字符串)实例:
    import redis.clients.jedis.Jedis;
     
    public class RedisStringJava {
        public static void main(String[] args) {
            //连接本地的 Redis 服务
            Jedis jedis = new Jedis("localhost");
            System.out.println("连接成功");
            //设置 redis 字符串数据
            jedis.set("runoobkey", "www.runoob.com");
            // 获取存储的数据并输出
            System.out.println("redis 存储的字符串为: "+ jedis.get("runoobkey"));
        }
    }
    
    连接成功
    redis 存储的字符串为: www.runoob.com
    
  3. Redis Java List(列表)实例:
    import java.util.List;
    import redis.clients.jedis.Jedis;
     
    public class RedisListJava {
        public static void main(String[] args) {
            //连接本地的 Redis 服务
            Jedis jedis = new Jedis("localhost");
            System.out.println("连接成功");
            //存储数据到列表中
            jedis.lpush("site-list", "Runoob");
            jedis.lpush("site-list", "Google");
            jedis.lpush("site-list", "Taobao");
            // 获取存储的数据并输出
            List<String> list = jedis.lrange("site-list", 0 ,2);
            for(int i=0; i<list.size(); i++) {
                System.out.println("列表项为: "+list.get(i));
            }
        }
    }
    
    连接成功
    列表项为: Taobao
    列表项为: Google
    列表项为: Runoob
    
  4. Redis Java Keys 实例:
    import java.util.Iterator;
    import java.util.Set;
    import redis.clients.jedis.Jedis;
     
    public class RedisKeyJava {
        public static void main(String[] args) {
            //连接本地的 Redis 服务
            Jedis jedis = new Jedis("localhost");
            System.out.println("连接成功");
     
            // 获取数据并输出
            Set<String> keys = jedis.keys("*"); 
            Iterator<String> it=keys.iterator() ;   
            while(it.hasNext()){   
                String key = it.next();   
                System.out.println(key);   
            }
        }
    }
    
    连接成功
    runoobkey
    site-list
    

PHP

开始在 PHP 中使用 Redis 前,需要确保已经安装了 redis 服务及 PHP redis 驱动,且你的机器上能正常使用 PHP。

安装驱动

  1. 安装“phpredis”扩展:
    • 以下操作需要在下载的 phpredis 目录中完成。
    $ wget https://github.com/phpredis/phpredis/archive/3.1.4.tar.gz
    $ tar zxvf 3.1.4.tar.gz                  # 解压
    $ cd phpredis-3.1.4                      # 进入 phpredis 目录
    $ /usr/local/php/bin/phpize              # php安装后的路径
    $ ./configure --with-php-config=/usr/local/php/bin/php-config
    $ make && make install
    
  2. 修改 php.ini 文件:
    vi /usr/local/php/lib/php.ini
    
    增加如下内容:
    extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20090626"
    
    extension=redis.so
    


安装完成后重启 php-fpm 或 apache,查看 phpinfo 信息,就能看到 redis 扩展:

Redis:PHP安装“phpredis”扩展.png

示例

  1. 连接到 redis 服务:
    <?php
        //连接本地的 Redis 服务
       $redis = new Redis();
       $redis->connect('127.0.0.1', 6379);
       echo "Connection to server successfully";
             //查看服务是否运行
       echo "Server is running: " . $redis->ping();
    ?>
    
    Connection to server sucessfully
    Server is running: PONG
    
  2. Redis PHP String(字符串)实例:
    <?php
       //连接本地的 Redis 服务
       $redis = new Redis();
       $redis->connect('127.0.0.1', 6379);
       echo "Connection to server successfully";
       //设置 redis 字符串数据
       $redis->set("tutorial-name", "Redis tutorial");
       // 获取存储的数据并输出
       echo "Stored string in redis:: " . $redis->get("tutorial-name");
    ?>
    
    Connection to server sucessfully
    Stored string in redis:: Redis tutorial
    
  3. Redis PHP List(列表)实例:
    <?php
       //连接本地的 Redis 服务
       $redis = new Redis();
       $redis->connect('127.0.0.1', 6379);
       echo "Connection to server successfully";
       //存储数据到列表中
       $redis->lpush("tutorial-list", "Redis");
       $redis->lpush("tutorial-list", "Mongodb");
       $redis->lpush("tutorial-list", "Mysql");
       // 获取存储的数据并输出
       $arList = $redis->lrange("tutorial-list", 0 ,5);
       echo "Stored string in redis";
       print_r($arList);
    ?>
    
    Connection to server sucessfully
    Stored string in redis
    Mysql
    Mongodb
    Redis
    
  4. Redis PHP Keys 实例:
    <?php
       //连接本地的 Redis 服务
       $redis = new Redis();
       $redis->connect('127.0.0.1', 6379);
       echo "Connection to server successfully";
       // 获取数据并输出
       $arList = $redis->keys("*");
       echo "Stored keys in redis:: ";
       print_r($arList);
    ?>
    
    Connection to server sucessfully
    Stored string in redis::
    tutorial-name
    tutorial-list