Redis:客户端
跳到导航
跳到搜索
关于
可以通过多种方式使用Redis:客户端、其他语言(如:Java、PHP)等。
客户端
Redis 通过监听一个 TCP 端口或者 Unix socket 的方式来接收来自客户端的连接,当一个连接建立后,Redis 内部会进行以下一些操作:
- 首先,客户端 socket 会被设置为非阻塞模式,因为 Redis 在网络事件处理上采用的是非阻塞多路复用模型。【???】
- 然后为这个 socket 设置 TCP_NODELAY 属性,禁用 Nagle 算法
- 然后创建一个可读的文件事件用于监听这个客户端 socket 的数据发送
客户端命令
命令 | 描述 |
---|---|
CLIENT LIST | 返回连接到 redis 服务的客户端列表 |
CLIENT SETNAME | 设置当前连接的名称 |
CLIENT GETNAME | 获取通过 CLIENT SETNAME 命令设置的服务名称 |
CLIENT PAUSE | 挂起客户端连接,指定挂起的时间以毫秒计 |
CLIENT KILL | 关闭客户端连接 |
关于“最大连接数”
在 Redis 2.4 中,最大连接数是被直接硬编码在代码里面的,而在 2.6 版本中这个值变成可配置的。
- maxclients 的默认值是 10000。
- 可以在 redis.conf 中对这个值进行修改:
config get maxclients 1) "maxclients" 2) "10000"
- 也可以在服务启动时设置:
redis-server --maxclients 100000
Java
开始在 Java 中使用 Redis 前, 需要确保已经安装了 redis 服务及 Java redis 驱动,且你的机器上能正常使用 Java。
安装驱动
Java 的安装配置可以参考 Java 开发环境配置:
- 下载驱动包“jedis.jar”;
- 在 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>
示例
- 连接到 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
- 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
- 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
- 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。
- PHP redis 驱动:下载地址为:https://github.com/phpredis/phpredis/releases。
安装驱动
- 安装“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
- 修改 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 //连接本地的 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
- 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
- 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
- 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