Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。
简单字符串缓存实战

简单队列实战

简单发布订阅实战


简单计数器实战

排行榜实战

每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁。
场景:如果项目中使用了缓存且对缓存设置了超时时间。
当并发量比较大的时候,如果没有锁机制,那么缓存过期的瞬间,大量并发请求会穿透缓存直接查询数据库,造成雪崩效应。


每次去拿数据的时候都认为别人不会修改,所以不会上锁。
watch 命令会监视给定的 key,当 exec 时候如果监视的 key 从调用 watch 后发生过变化,则整个事务会失败。
也可以调用 watch 多次监视多个key。这样就可以对指定的key加乐观锁了。
注意 watch 的 key 是对整个连接有效的,事务也一样。
如果连接断开,监视和事务都会被自动清除。
当然了 exec,discard,unwatch 命令都会清除连接中的所有监视。

本文介绍了Redis在实际项目中的多种应用场景,包括缓存、队列、发布订阅等,并深入探讨了乐观锁与悲观锁的实现原理及使用场景,帮助读者更好地理解和应用Redis。
1194

被折叠的 条评论
为什么被折叠?



