启动thrift服务
cd match_system/src/
chmod +x main.py
./main.py
启动Redis服务
sudo redis-server /etc/redis/redis.conf
项目启动
启动uwsgi服务
uwsgi --ini scripts/uwsgi.ini
启动django_channels服务
daphne -b 0.0.0.0 -p 5015 acapp.asgi:application
启动django项目(最后没用到这种):
python3 manage.py runserver 0.0.0.0:端口号
django后台操作redis(使用django-redis库)
1.打开项目的django交互式后台
python3 manage.py shell
2.导入cache层相关的包
from django.core.cache import cache
3.操作redis的一些命令
- 列出redis中的所有key:
cache.keys('*')
,cache.keys()
中的表达式支持正则 - 向redis中插入一条数据:
cache.set(key, value, passtime)
- 查询某个key是否存在:
cache.has_key('')
- 删除所有数据:
cache.clear()
有些命令会导致阻塞,因此简单的shell脚本把以上命令执行一遍是不行的。可以通过脚本操作tmux来实现。
把
USER_PASSWORD=当前用户的密码
USERNAME=当前用户的用户名
修改成自己的账户即可。
#! /bin/bash
# 教程:https://blog.csdn.net/woswod/article/details/80353254
# tmux kill-session -t acapp_workspace
USER_PASSWORD=当前用户的密码
USERNAME=当前用户的用户名
#项目路径
WORKDIR=/home/$USERNAME/acapp
#tmux session的名字
TMUX_SESSION_NAME=acapp_workspace
#
cd $WORKDIR || exit
#su- $USERNAME
echo $USER_PASSWORD | sudo -S /etc/init.d/nginx start
echo $USER_PASSWORD | sudo -S redis-server /etc/redis/redis.conf
result=$(tmux ls | grep $TMUX_SESSION_NAME)
echo "$result"
#tmux每开一个窗口,相当于新开了一个bash,每新开一个bash,就会执行整个脚本
#所以每次执行脚本之前,应该判断一下这个脚本之前是否执行过,即判断tmux是否被创建出来
if [[ $result = "" ]]; then
#
cd $WORKDIR || exit
#su- $USERNAME
echo $USER_PASSWORD | sudo -S /etc/init.d/nginx start
echo $USER_PASSWORD | sudo -S redis-server /etc/redis/redis.conf
PROCESS=$(ps -ef | grep uwsgi)
for i in $PROCESS; do
case "$i" in
[1-9][0-9]*)
echo "Kill the process [ $i ]"
kill -9 $i
;;
*) ;;
esac
done
# 后台新建一个session
tmux new-session -d -s $TMUX_SESSION_NAME
#向选择的窗口发送指令
tmux send-keys -t $TMUX_SESSION_NAME "uwsgi --ini scripts/uwsgi.ini" C-m
#该命令会把当前工作区域分成左右两个小窗格,光标会移动到右面的窗口
tmux split-window -h
tmux send-keys -t $TMUX_SESSION_NAME "cd $WORKDIR/scripts" C-m
tmux send-keys -t $TMUX_SESSION_NAME "./compress_game_js.sh" C-m
#启动`django_channels`服务
#该命令 -t 后参数[session]:[window].[pane]; -v表示向右分割,-h表示向下分割
tmux split-window -t $TMUX_SESSION_NAME:0.0 -v
tmux send-keys -t $TMUX_SESSION_NAME "cd $WORKDIR" C-m
tmux send-keys -t $TMUX_SESSION_NAME "daphne -b 0.0.0.0 -p 5015 acapp.asgi:application" C-m
#多次切割后每个小窗口的编号会变化
#该命令会把当前工作区域分成左右两个小窗格,光标会移动到右面的窗口
tmux split-window -t $TMUX_SESSION_NAME:0.0 -v
tmux send-keys -t $TMUX_SESSION_NAME "cd match_system/src/" C-m
tmux send-keys -t $TMUX_SESSION_NAME "chmod +x main.py" C-m
tmux send-keys -t $TMUX_SESSION_NAME "./main.py" C-m
tmux split-window -t $TMUX_SESSION_NAME:0.0 -h
tmux send-keys -t $TMUX_SESSION_NAME "python3 manage.py shell" C-m
tmux send-keys -t $TMUX_SESSION_NAME "from django.core.cache import cache" C-m
tmux send-keys -t $TMUX_SESSION_NAME "cache.keys('*')" C-m
tmux send-keys -t $TMUX_SESSION_NAME "cache.clear()" C-m
tmux send-keys -t $TMUX_SESSION_NAME "cache.has_key('')" C-m
#tmux select-pane -t 2
#tmux send-keys "mysql -uroot -p123456 --host 192.168.1.221 --sigint-ignore --auto-vertical-output" C-m
#tmux send-keys "use data" C-m
#tmux -2 attach-session -t ssh //挂载到之前运行的session上
#tmux每开一个窗口,相当于新开了一个bash,每新开一个bash,就会执行整个脚本
echo "66666666"
fi
#tmux a -t $TMUX_SESSION_NAME
最终效果: