php使用redis做热搜词排行榜

function redis_search_record($keyword){
$redis = new Redis();
$redis->connect(‘localhost’,6379);
$redis->auth(‘******’);
$redis->select(1);
$redis->zIncrBy(“blog:search” , 1 ,$keyword);
$redis->hMset(“blog:search_history:”.uniqid() , array( ‘time’=>time(),’ip’=>$_SERVER[‘REMOTE_ADDR’] ));
}

zset,有序集合,是一个没有重复元素的字符串集合,有序集合比set(集合)多了一个sore,有序集合的成员是唯一的,但是score是可以重复的。zIncrBy,向有序集合中添加一个成员,若不存在此成员,则增加此成员,并给出默认的score,若已存在此成员,则只会在score上增加指定的值。ZincrBy(‘blog:search’,1,$keyword),若在blog:search中还没有人搜索过$keyword,则创建一个$keyword成员,若已经有人搜索过$keyword了,则会在$keyword的score中+1,这样,按照score大小排列,就可以取出热搜词了zRange(‘blog:search’ , 0 , -1 , ‘withscores’);

blog:search

zrange

zrange

set,集合,hMset,一次可以插入多个成员,blog:search_history记住热搜词记录

search_history

search_history

评论

目前评论:0   

点击加载更多评