美文网首页
Redis从入门到精通2:Redis常用操作

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

作者: 金字塔下的小蜗牛 | 来源:发表于2020-04-04 23:42 被阅读0次

    本节介绍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常用操作

          本文链接:https://www.haomeiwen.com/subject/tipkdhtx.html