1.常用命令
1.1 set命令
描述:该命令用于设置给定 key 的值。如果 key 已经存储其他值, SET 就覆写旧值,且无视类型。
1.2 get命令
描述:该命令用于获取指定 key 的值。如果 key不存在,返回 nil 。如果key对应储存的值不是字符串类型,返回一个错误。
1.3 getset命令
描述:该命令用于获取指定的key的旧值,然后按照新值对key进行赋值。当key中没有旧值的时候返回nil。
1.4 mget命令
描述:该命令用于返回多个key的值,当其中某一个KEY的值不存在,返回nil。
1.5 decr命令
描述:对key对应的数字做减1操作。如果key不存在,那么在操作之前,这个key对应的值会被置为0。如果key有一个错误类型的value或者是一个不能表示成数字的字符串,就返回错误。
1.6 incr命令
描述:对存储在指定key的数值执行原子的加1操作,如果指定的key不存在,那么在执行incr操作之前,会先将它的值设定为0。如果指定的key中存储的值不是字符串类型或者存储的字符串类型不能表示为一个整数,那么执行这个命令时服务器会返回一个错误。
更多string命令,参考这里:http://www.redis.cn/commands.html#string
2.string数据类型应用
2.1 session共享
修改php.ini
session.save_handler = redis
session.save_path = "tcp://172.0.0.1:6379"
2.2 计数器(浏览、点赞、收藏)
//前部分省略
if (!$Redis::exists($key)){
$Redis::set($key,1);
}else{
$Redis::incr($key);
}
2.3 限速、限流
//前部分省略
$is_exists = Redis::set($key,1,"EX",60,"NX");
if(!$is_exists || $Redis::incr($key)<=5){
echo 'ok';
}else{
echo '1分钟不能请求5次';
}