Redis从入门到精通2:Redis常用操作
2020-04-04 本文已影响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();
}
}
}