The example (and related documentation at redis.io) was not updated for 5 years. Redis had no sorted sets and hashes when the original code was written (!). An update was really needed. We also use a modern PHP client now: Predis. A copy is shipped within this repository to make life easier to newcomers trying Redis for the first time via this example.
25 lines
666 B
PHP
25 lines
666 B
PHP
<?
|
|
include("retwis.php");
|
|
|
|
if (!isLoggedIn() || !gt("status")) {
|
|
header("Location:index.php");
|
|
exit;
|
|
}
|
|
|
|
$r = redisLink();
|
|
$postid = $r->incr("next_post_id");
|
|
$status = str_replace("\n"," ",gt("status"));
|
|
$r->hmset("post:$postid","user_id",$User['id'],"time",time(),"body",$status);
|
|
$followers = $r->zrange("followers:".$User['id'],0,-1);
|
|
$followers[] = $User['id']; /* Add the post to our own posts too */
|
|
|
|
foreach($followers as $fid) {
|
|
$r->lpush("posts:$fid",$postid);
|
|
}
|
|
# Push the post on the timeline, and trim the timeline to the
|
|
# newest 1000 elements.
|
|
$r->lpush("timeline",$postid);
|
|
$r->ltrim("timeline",0,1000);
|
|
|
|
header("Location: index.php");
|
|
?>
|