Redis 常见 的几种使用场景

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

本篇文章,主要介绍利用 PHP 使用 Redis,主要的应用场景。

简单字符串缓存实战

Redis 常见 的几种使用场景

简单队列实战

Redis 常见 的几种使用场景

简单发布订阅实战

Redis 常见 的几种使用场景

Redis 常见 的几种使用场景

简单计数器实战

Redis 常见 的几种使用场景

排行榜实战

Redis 常见 的几种使用场景

简单字符串悲观锁实战

解释:悲观锁(Pessimistic Lock), 顾名思义,就是很悲观。

每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁。

场景:如果项目中使用了缓存且对缓存设置了超时时间。

当并发量比较大的时候,如果没有锁机制,那么缓存过期的瞬间,大量并发请求会穿透缓存直接查询数据库,造成雪崩效应。

Redis 常见 的几种使用场景

Redis 常见 的几种使用场景

简单事务的乐观锁实战

解释:乐观锁(Optimistic Lock), 顾名思义,就是很乐观。

每次去拿数据的时候都认为别人不会修改,所以不会上锁。

watch 命令会监视给定的 key,当 exec 时候如果监视的 key 从调用 watch 后发生过变化,则整个事务会失败。

也可以调用 watch 多次监视多个key。这样就可以对指定的key加乐观锁了。

注意 watch 的 key 是对整个连接有效的,事务也一样。

如果连接断开,监视和事务都会被自动清除。

当然了 exec,discard,unwatch 命令都会清除连接中的所有监视。

Redis 常见 的几种使用场景