redis DB 使用,包含客户端与jedis

来源:互联网 发布:烈焰遮天 源码 双端 编辑:程序博客网 时间:2024/06/11 10:39

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

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

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

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

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

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

key-value

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

key-value

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

key-value

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

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

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

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

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



redis--设置redis的dbIndex方法

Redis 本身支持16个数据库,通过 数据库id 设置,默认为0

设置redis的dbIndex方法有2种:

1.通过构造函数设置;

2.通过set方法设置;


先说第一种:

在使用redis时,Java中使用的是java版本的redis,即:jedis;具体写法如下:

JedisPool pool = new JedisPool(jredisConfig, server, Integer.valueOf(port));

Jedis redis = pool.getResource();

String value = redis.get("key");//取值


构造函数有多个重载函数其中有下面一个:

public JedisPool(org.apache.commons.pool.impl.GenericObjectPool.Config poolConfig, String host, int port, int timeout, String password, int database);

poolConfig: jedis配置信息,如:maxActive,maxIdle,minIdle,maxWait

host: ip

port: 端口

timeout:超时时间,默认为2000

password:密码,可为null

database:第几个数据库,默认:0

更换以上这个构造函数,就可以设置database了


第二种:通过set方法设置

JedisPool pool = new JedisPool(jredisConfig, server, Integer.valueOf(port));

Jedis redis = pool.getResource();

redis.select(index);//需要调用一个方法,设置使用第几个database

String value = redis.get("key");//取值



原创粉丝点击