PHP操作Redis PHP连接Redis,含Redis密码验证指定某一Redis数据库

Posted hnhycnlc888

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP操作Redis PHP连接Redis,含Redis密码验证指定某一Redis数据库相关的知识,希望对你有一定的参考价值。

台服务器上都快开启200个redis实例了,看着就崩溃了。这么做无非就是想让不同类型的数据属于不同的应用程序而彼此分开。

那么,redis有没有什么方法使不同的应用程序数据彼此分开同时又存储在相同的实例上呢?就相当于mysql数据库,不同的应用程序数据存储在不同的数据库下。

redis下,数据库是由一个整数索引标识,而不是由一个数据库名称。默认情况下,一个客户端连接到数据库0。redis配置文件中下面的参数来控制数据库总数:

可以通过下面的命令来切换到不同的数据库下

随后,所有的命令将使用数据库3,知道你明确的切换到另一个数据库下。

每个数据库都有属于自己的空间,不必担心之间的key冲突。

技术分享图片

不同的数据库下,相同的key取到各自的值。

技术分享图片

flushdb命令清除数据,只会清除当前的数据库下的数据,不会影响到其他数据库。

技术分享图片

flushall命令会清除这个实例的数据。在执行这个命令前要格外小心。

数据库的数量是可以配置的,默认情况下是16个。修改redis.conf下的databases指令:

redis没有提供任何方法来关联标识不同的数据库。因此,需要你来跟踪什么数据存储到哪个数据库下。

因此上面的快开启200个实例的场景,可以使用不同的数据库来存储,而不必开启如此那么多的实例。

转载请注明来自运维生存时间: http://www.ttlsa.com/html/4010.html

 

---

实际编程中,redis分片操作,引用jedis jar包

 

  1. import redis.clients.jedis.JedisShardInfo;
  2.  
  3. JedisShardInfo shard = new JedisShardInfo(node.getHost(), node.getPort(), node.getName());
  4. shard.setPassword(node.getPassword());
  5. shard.setDb(dbIndex);
  6. shards.add(shard);

这里的shard.setDb(2) 相当于控制台里输入 "select 2"   选择数据库2(是从数据库0开始的)

<?php  
   $redis = new Redis(); 
   $redis->connect(‘127.0.0.1‘, 6379); //连接Redis
   $redis->auth(‘mypasswords123sdfeak‘); //密码验证
   $redis->select(2);//选择数据库2
   $redis->set( "testKey" , "Hello Redis"); //设置测试key
   echo $redis->get("testKey");//输出value
?>







以上是关于PHP操作Redis PHP连接Redis,含Redis密码验证指定某一Redis数据库的主要内容,如果未能解决你的问题,请参考以下文章

PHP操作redis

Redis PHP连接操作

PHP连接Redis操作函数

PHP操作Redis步骤详解

封装php redis缓存操作类

php 操作 redis 常用命令