Redis从入门到精通2:Redis常用操作

本节介绍Redis常用的操作。Redis有两种操作方式:命令行和Java API。

1.命令行

  • set:设置键值
  • get:获取键值
  • watch:给键加锁,用在事务前;如果执行事务键值变化,则放弃执行事务
  • multi:开启事务
  • decrby:键值减去一个数字
  • decr:键值减去1
  • incrby:键值加上一个数字
  • incr:键值加上1
  • exec:执行事务
  • discard:回滚事务

示例1:tom给mike转100块钱

127.0.0.1:6379> set tom 1000
127.0.0.1:6379> set mike 1000
127.0.0.1:6379> multi
127.0.0.1:6379> decrby tom 100
127.0.0.1:6379> incrby mike 100
127.0.0.1:6379> exec

示例2:买票

127.0.0.1:6379> set tom 1000
127.0.0.1:6379> set ticket 1
127.0.0.1:6379> watch ticket
127.0.0.1:6379> multi
127.0.0.1:6379> decrby tom 100
127.0.0.1:6379> decr ticket
127.0.0.1:6379> exec

2.Java API

2.1将Redis依赖的jars包包含到工程中

2.2案例1:tom给mike转账100

import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPubSub;
import redis.clients.jedis.Transaction;
public class TestRedis {
    @Test
    public void testTransaction(){
        //创建一个Redis的客户端
        Jedis client = new Jedis("192.168.157.111", 6379);
        //创建一个事务
        Transaction tc = null;
        try{
            //开启事务
            tc = client.multi();
            //转账
            tc.decrBy("tom", 100);
            tc.incrBy("mike", 100);
            //提交事务
            tc.exec();
        }catch(Exception ex){
            ex.printStackTrace();
            if(tc != null){
                tc.discard();
            }
        }finally{
            //关闭客户端
            client.disconnect();
        }
    }
}

2.2案例2:买票

import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPubSub;
import redis.clients.jedis.Transaction;
public class TestRedis {
    @Test
    public void testTransaction(){
        //创建一个Redis的客户端
        Jedis client = new Jedis("192.168.157.111", 6379);
        //给某个变量加锁
        client.watch("ticket") ;
        //创建一个事务
        Transaction tc = null;
        try{
            //开启事务
            tc = client.multi();
            //买票
            tc.decrBy("tom", 100);
            tc.decrBy("ticket", 1);
            //提交事务
            tc.exec();
        }catch(Exception ex){
            ex.printStackTrace();
            if(tc != null){
                tc.discard();
            }
        }finally{
            //关闭客户端
            client.disconnect();
        }
    }
}

你可能感兴趣的:(Redis从入门到精通2:Redis常用操作)