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

一个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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值