一个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