介绍:redis中的事务是一组命令的集合。事务同命令一样都是redis最小执行单位,一个事务中的命令要么执行,要么不执行,Redis事务的实现需要用到MULTI
和EXEC两个命令,事务开始是先向Redis服务器发送multi命令,然后需要依次发送需要执行的命令,最后发送EXEC命令标识事务结束;
redis中没有事务回滚的功能,事务没有执行执行discard取消事务;
乐观锁:大多数基于数据库的版本记录机制实现,即为数据增加一个版本标识,在基于数据库表的版本的解决方案中,一 般是通过为数据库表增加一个"version"字段来实现读取出数据时,将此版本号一同导出,之后更新是为版本号加1
,此时将提交的版本号与数据库表记录的版本号进行对比,如果提交 版本号大于标记版本号,则予以更新,否则
数据过期。watch命令命令会监视给定key,从exec命令后如果监视的Key从调用watch后发生过变化,则导致整 个事 务失败,也会调用watch监视多个key,这样就可以给指定的key加乐观锁,watch对整个链接有效,事务也一样,如果链接断开,监视和事务都会自动清除。
redis消息通知(消息队列和发布订阅)
消息是指两个独立的系统间传递数据。(两个系统可以是计算机,也可以是两个线程)
队列是指消息传递的一个通道,是保存消息的容器,根据不同的形式,可以有先进先出,优先级的区别。
消息队列包括两种方式:发布者订阅模式,生产者和消费者模式。
使用场景:异步发送短信
发布:subsrcibe 频道 内容 publish 频道 ‘XXXX’ (一个单词不需要引号)