分类 技术专栏 下的文章

今天接到一个需求,需要获取一个根据用户的总成绩及地区进行一个排名,参与人数约为20万,原计划直接查库操作,后来考虑到需要将所有数据查出再做排名处理,有可能会查询效率问题,最后决定用redis的有序集合来解决这一问题,大概逻辑如下:
一、返回所有参与用户地市的排名,按照分数从高到低排序

$redis = Redis::connection();
$redisKey = 'user-ranking-list-'.$city.':';//定义当前地市排名
$total = $redis->zcard($redisKey)
$result = $redis->zrangebyscore($redisKey, 0, $total);

二、验证用户是否存在,不存在则直接插入并返回排名,存在即返回当前排名

if($redis->zrevrank($redisKey, $mobile) == null){
    $redis->zadd($redisKey, $score, $mobile);
}
$sort = $redis->zrevrank($redisKey,$mobile)+1;//排名+1

更多有序集合介绍可以参考:https://www.runoob.com/redis/redis-sorted-sets.html

1、准备工作,提前装好go
2、新建一个go文件,在使用是会有提示安装扩展,大概如下
6.png
3、点击install All,此时因为跨域问题,所有扩展都会提示下载失败
4、重点:打开终端,依次执行以下两条命令
go env -w GO111MODULE=on //开启modules
go env -w GOPROXY=https://goproxy.io,direct //使用国内镜像代理
5、重点:此时先退出vscode,然后重新打开,再次安装,则可以正常下载,如下图所示
7.png
6、到此,扩展安装成功

1、http://pecl.php.net/package/redis 官网下载最新的redis包,这里下载的是redis-5.3.4.tgz 版本
2、将tar包上传到服务器上,我用的sudo rz命令
3、解压tar包 sudo tar -zxvf redis-5.3.4.tgz
4、进入解压后的目录文件 cd redis-5.3.4
5、执行phpize命令: sudo /usr/local/php-7.1.8/bin/phpize(这里为当前服务器php路径)
6、指定php配置路径:sudo ./configure --with-php-config=/usr/local/php-7.1.8/bin/php-config(这里为当前服务器php路径)
7、编译文件:sudo make && sudo make install (等待执行完成)
8、在php.ini中添加redis扩展: extension=redis.so,保存退出 sudo vim /usr/local/php-7.1.8/etc/php.ini
9、重启php-fpm :
sudo killall php-fpm(杀死php-fpm进程)
sudo /usr/local/php-7.1.8/sbin/php-fpm & (重启php-fpm)
10、新建文件,打印phpinfo(),验证扩展是否安装成功,至此结束

ftp服务安装
1、vsftpd服务安装
yum install -y vsftpd
2、vsftpd服务器配置
a、vim /etc/vsftpd/vsftpd.conf,找到anonymous_enable=NO(不允许匿名访问)和local_enable=YES(允许使用本地帐户进行FTP用户登录验证),开启注释
b、chroot_list_file=/etc/vsftpd/chroot_list(注:没有则添加这行。 )//在 /etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录
c、wq保存退出,并重启服务: /bin/systemctl restart vsftpd

ftp账号相关
1、新建ftp账号:
useradd test (test:ftp用户名)
2、设置ftp密码:
passwd test 回车键
3、修改ftp密码:
passwd ftp(ftp为你要修改密码的帐号)

首先,进入项目根目录,这里以laravel项目为例:
cd /vaw/www/myweb/(程序根目录,非public)
然后执行以下命令,gatewayworker 启动命令和停止命令

sudo php /var/www/myweb/artisan gateway-worker:server stop    //停止服务
sudo php /var/www/myweb/artisan gateway-worker:server restart    //重启服务
sudo php /var/www/myweb/artisan gateway-worker:server start &  //启动后在后台执行