场景
由于和其他部分公用了redis。除了规定库,还需要在我们项目的所有key前面增加一个webapp:
的前缀。
我现在是在params.php配置了一个'redis.prefix' => 'webapp:'
然后业务代码里使用`Yii::$app->paramas['redis.prefix']。虽然可以,但是总感觉不舒服。
那么我想问下 yii2中有没有配置或者可以实现透明的key存储,然后自动加webapp:
这个前缀
谢谢大家。
场景
由于和其他部分公用了redis。除了规定库,还需要在我们项目的所有key前面增加一个webapp:
的前缀。
我现在是在params.php配置了一个'redis.prefix' => 'webapp:'
然后业务代码里使用`Yii::$app->paramas['redis.prefix']。虽然可以,但是总感觉不舒服。
那么我想问下 yii2中有没有配置或者可以实现透明的key存储,然后自动加webapp:
这个前缀
谢谢大家。
1. 如果只是单纯地使用Redis作为cache组件:
只需要在配置文件中添加
keyPrefix
属性即可:2. 如果是直接使用Redis组件:
这样就没有办法实现自动加前缀,只能自己去实现。
如果是我的话,我会单独写一个Redis的helper类,只在这个 Redis helper类中调用
\Yii::$app->redis
组件。Redis 基础类,放一些基础方法,各个数据类型都适用,每个数据类型都编写一个子类,继承这个类
Redis 字符串类型的方法,单独放置在RedisString类中,继承 RedisBase 方法
Redis 集合类型的方法,单独放置在RedisSet类中,继承 RedisBase 方法
Redis 有序集合类型的方法,单独放置在RedisSortedSet类中,继承 RedisBase 方法
Redis List类型的方法,单独放置在RedisList类中,继承 RedisBase 方法
Redis Hash类型的方法,单独放置在RedisHash类中,继承 RedisBase 方法
这样写的好处:
另外,关于Redis的一些数据类型,可以查看Redis学习笔记 - 数据类型与API