Redis--02--常用命令

redis 服务器命令

cd /usr/local/src/redis

1.启动redis

  redis-server redis.conf

2.进入客户端

redis-cli -p 6379

查看信息 
info replication

3.关闭redis

方法1:  redis-cli -p 6379 shutdown

方法2:   ps -ef | grep redis
        kill -9 PID号

4.清空全部数据库

 flushall

Redis命令

String类型

在这里插入图片描述
在这里插入图片描述

Hash类型

说明:可以用散列类型保存对象和属性值
例子:User对象{id:2,name:小明,age:19}
在这里插入图片描述

List类型

说明:Redis中的List集合是双端循环列表,分别可以从左右两个方向插入数据.
List集合可以当做队列使用,也可以当做栈使用

  • 队列:存入数据的方向和获取数据的方向相反
  • 栈:存入数据的方向和获取数据的方向相同

在这里插入图片描述
在这里插入图片描述

Redis事务命令

说明:redis中操作可以添加事务的支持.一项任务可以由多个redis命令完成,如果有一个命令失败导致入库失败时.需要实现事务回滚.在这里插入图片描述

Redis常见用法

setex 设置超时时间

需求:
* 1.向redis中插入数据 k-v
* 2.为key设定超时时间 60秒后失效.
* 3.线程sleep 3秒
* 4.获取key的剩余的存活时间.

    @Test
    public void test02() throws InterruptedException {
    
    
        Jedis jedis = new Jedis("192.168.126.129",6379);
        jedis.setex("湖人", 60, "总冠军");
        System.out.println(jedis.get("湖人"));
        }
 @Test
    public void test02() throws InterruptedException {
    
    
        Jedis jedis = new Jedis("192.168.126.129",6379);
        jedis.set("宝可梦", "小火龙 妙蛙种子");
         //指定key的生效时间 
        jedis.expire("宝可梦", 60);
        Thread.sleep(3000);
        //检查key的剩余存活时间
        System.out.println(jedis.ttl("宝可梦"));
    }

在这里插入图片描述

setnx

如果发现key已经存在时 不修改数据.如果key不存在时才会修改数据

/**
     * 3.需求如果发现key已经存在时 不修改数据.如果key不存在时才会修改数据.
     *
     */
    @Test
    public void test03() throws InterruptedException {
    
    
        Jedis jedis = new Jedis("192.168.126.129", 6379);
        jedis.setnx("aaaa", "测试nx的方法");
        /*if(jedis.exists("aaa")){
            System.out.println("key已经存在 不做修改");
        }else {
            jedis.set("aaa", "测试数据");
        }*/
        System.out.println(jedis.get("aaaa"));
    }

set 超时时间原子性操作

需求:
* 1.要求用户赋值时,如果数据存在则不赋值. setnx
* 2.要求在赋值操作时,必须设定超时的时间 并且要求满足原子性 setex

  @Test
    public void test04() throws InterruptedException {
    
    
        Jedis jedis = new Jedis("192.168.126.129", 6379);
        SetParams setParams = new SetParams();
        setParams.nx().ex(20);
        jedis.set("bbbb", "实现业务操作AAAA", setParams);
        System.out.println(jedis.get("bbbb"));
     }

list集合练习

说明:Redis中的List集合是双端循环列表,分别可以从左右两个方向插入数据.

List集合可以当做队列使用,也可以当做栈使用

  • 队列:存入数据的方向和获取数据的方向相反
  • 栈:存入数据的方向和获取数据的方向相同

在这里插入图片描述

@Test
    public void testList() throws InterruptedException {
    
    
        Jedis jedis = new Jedis("192.168.126.129", 6379);
        jedis.lpush("list", "1","2","3");
        System.out.println(jedis.rpop("list"));
    }

redis事务控制

说明:redis中操作可以添加事务的支持.一项任务可以由多个redis命令完成,如果有一个命令失败导致入库失败时.需要实现事务回滚.
在这里插入图片描述

@Test
    public void testTx() throws InterruptedException {
    
    
        Jedis jedis = new Jedis("192.168.126.129", 6379);
        //1.开启事务
        Transaction transaction = jedis.multi();
        try {
    
    
            transaction.set("aa", "aa");
            //提交事务
            transaction.exec();
        }catch (Exception e){
    
    
            e.printStackTrace();
            //回滚事务
            transaction.discard();
        }
    }

猜你喜欢

转载自blog.csdn.net/weixin_48052161/article/details/109039309