Redis 事务

点击查看简介来源

Redis 事务可以一次执行多个命令, 并且带有以下两个重要的保证:

  • 事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
  • 事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。
    一个事务从开始到执行会经历以下三个阶段:
    1. 开始事务
    2. 命令入队
    3. 执行事务
require 'redis'

$redis = Redis.new
# redis.multi  #开始事务
# p redis.set('a-key','a-key named by lvc')
# p redis.sadd('tag',['ruby','rails','redis','mongodb','mysql'])
# p redis.smembers('tag')
# redis.exec
def run
    $redis.multi  #开始事务
    sleep(3)
    puts "go--go---go---go----"
    redis_string  #事务入队
    redis_hash
    redis_list
    redis_set
    redis_sorted_set
    $redis.exec  #执行事务
    puts 'end-end--end------'
end

def redis_string
    puts "redis_string start"
    p $redis.set('string',"this is a string")
end

def redis_hash
    puts "redis_hash start"
    p $redis.hmset('hash',['name','redis','content','redis is a key-value db'])
    # p $redis.hgetall('hash')
end

def redis_list
    puts "redis list start"
    p $redis.lpush('list',['redis','mongodb','mysql'])
end

def redis_set
    puts 'redis set start--------------'
    p $redis.sadd('set',['redis','mongodb','mysql','set'])
end

def redis_sorted_set
    puts 'redis sorted set start'
    p $redis.zadd('sort_set',1,'redis')
    $redis.zadd('sort_set',2,'mongodb')
    $redis.zadd('sort_set',3,'mysql')
    $redis.zadd('sort_set',4,'sort_set')
end

run
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值