redis特性之多数据库及jedis操作

时间:2021-07-22 17:26:21

一个redis实例包括了多个数据库,客户端这边可以指定要连接的数据库,就跟mysql一样创建了多个数据库,我们可以自己指定连接哪个数据库。实际上redis提供了16个数据库,下标从0到15,默认连接的是下标为0的数据库,如果连接下标指定超过15会报错。

命令行操作

指定连接数据库:select 下标(0-15)
将当前数据库中的key移动到另外一个数据库:move key 数据库下标

127.0.0.1:6379> select 2    //连接下标2的数据库
OK
127.0.0.1:6379[2]> set name 'tom'
OK
127.0.0.1:6379[2]> keys *
1) "name"
127.0.0.1:6379[2]> get name
"tom"
127.0.0.1:6379[2]> move name 1 //将下标2数据库中key移动到下标1的数据库
(integer) 1
127.0.0.1:6379[2]> keys *
(empty list or set)
127.0.0.1:6379[2]> select 1 //查看下标1的数据库是否存在name的key
OK
127.0.0.1:6379[1]> keys *
1) "name"

服务器命令
1、测试连接是否存活
ping返回PONG时表示连接存活

127.0.0.1:6379> ping
PONG

2、命令行打印内容
echo 字符串

127.0.0.1:6379> echo naobaijin
"naobaijin"

3、查看当前数据库中key的个数
dbsize

127.0.0.1:6379> select 2
OK
127.0.0.1:6379[2]> dbsize
(integer) 0
127.0.0.1:6379[2]> set name jin
OK
127.0.0.1:6379[2]> set age 14
OK
127.0.0.1:6379[2]> set id 10
OK
127.0.0.1:6379[2]> dbsize
(integer) 3
初始是0个key,加了三个之后再查看

4、删除当前数据库中所有key

flushdb

127.0.0.1:6379[2]> dbsize
(integer) 3
127.0.0.1:6379[2]> flushdb
OK
127.0.0.1:6379[2]> dbsize
(integer) 0
初始是3个key,删除后剩0个

5、删除所有数据库中的key

flushAll(这里就不测试了)

6、退出连接

quit

jedis操作,连接数据库,服务器操作

    /*
* 多数据库测试
*/

@Test
public void test1(){
Jedis jedis = new Jedis("192.168.25.128",6379);
//连接数据库1
jedis.select(1);
jedis.set("name", "Lucy");
String name = jedis.get("name");
System.out.println(name);

//连接数据库2
jedis.select(2);
String name2 = jedis.get("name");
System.out.println(name2);

//连接数据库1
jedis.select(1);
//将数据库1的的key='name'的键值对移到数据库3中
jedis.move("name", 3);
//连接数据库3
jedis.select(3);
String name3 = jedis.get("name");
System.out.println(name3);

jedis.select(15);
System.out.println("连接15");
jedis.select(16);//到这里就会抛出异常JedisDataException:ERR invalid DB index,后面代码不再执行。
System.out.println("连接16");

}

输出:

Lucy
null
Lucy
连接15
    /*
* 健康状况(连接是否存活),退出,当前数据库中key的数目,服务器信息,删除某数据库(或所有数据库)中所有key
*/

@Test
public void test2(){
Jedis jedis = new Jedis("192.168.25.128",6379);
//健康状况
String ping = jedis.ping();
System.out.println(ping);

//当前数据库中key的数目
Long size = jedis.dbSize();
System.out.println("数据库0中key的数目为:"+size);

//获取服务器的信息和统计
String info = jedis.info();
System.out.println("服务器信息:"+info);

//删除当前数据库中所有key
jedis.select(1);
jedis.set("age", "15");
jedis.set("address", "四川成都");
jedis.flushDB();//flushAll()表示删除所有数据库中的key
System.out.println(jedis.get("age"));

//退出连接
//jedis.quit();
}

输出:

PONG
数据库0中key的数目为:41
服务器信息:# Server
...一堆服务器相关信息如,内存、状态、cpu等
null