介绍
CMake 是一种跨平台的开源工具,用于使用独立于编译器的方法来管理软件的构建过程。 CMake 生成可在您选择的编译器环境中使用的本机 makefile 和工作区。
原文链接:redis数据库
Redis 是一种开源(BSD 许可)内存数据结构存储,用作数据库、缓存和消息代理。 它支持数据结构,例如字符串、散列、列表、集合、带范围查询的排序集合、位图、hyperloglogs 和带半径查询的地理空间索引。
Redis 的一些主要特性是:
• 内存存储:Redis 将所有数据存储在内存中,而不是磁盘上。 这使得它非常快,因为不涉及磁盘 I/O。
• 磁盘持久化:Redis 可以将数据持久化到磁盘,以在崩溃或重启时重建内存中的数据。 这使其快速耐用。
• 复制:Redis 允许主从复制以扩展读取并确保可靠性。
• LRU 逐出:Redis 支持在达到最大内存时自动逐出键。 这是以 LRU(最近最少使用)方式完成的。
• 事务:Redis 支持事务将一组命令作为一个独立的操作来执行。
• 发布/订阅:Redis 通常用作消息代理,并通过其发布/订阅功能支持简单形式的消息传递。
• 具有多种数据类型的键:Redis 键可以保存字符串、列表、集合、排序集合、散列和位图。 这允许您将 Redis 用作数据库和缓存。
• 快速性能:Redis 是用C 语言编写的,速度极快,通常以超过100k 次操作/秒的速度运行。
Redis 的一些常见用途是:
• 缓存——Redis 是一种理想的缓存存储,具有内存中性能和磁盘持久性。
• 会话存储——Redis 是存储用户会话数据的绝佳选择。
• 消息代理——Redis Pub/Sub 功能适用于简单的消息队列和应用程序通信。
• 分析——Redis 位图和hyperloglogs 提供了一种快速进行分析和计数的方法。
依赖库安装
1 | sudo apt-get update |
官网找到指定版本文件下载安装到指定的目录
http://download.redis.io/releases/
http://download.redis.io/releases/redis-7.0.0.tar.gz
apt安装
curl -fsSL https://packages.redis.io/gpg | sudo gpg –dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo “deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main” | sudo tee /etc/apt/sources.list.d/redis.list
sudo apt-get update
sudo apt-get install redis
redis-cli -h 127.0.0.1 -p 6379 shutdown
4.配置redis
redis目录/redis.conf 配置信息,如logfile等
启动
执行 redis目录/src/redis-server 启动
redis-cli 为客户端通信命令
redis-cli shutdown 关闭redis
sudo /etc/init.d/redis-server stop 强制关闭
redis基础命令https://redis.com.cn/commands.html
redis-cli 回车与redis-server通信
ping 回复pong 表示redis正常运行
set key value
get key
hiredis 是一个用于与 Redis 服务器交互的 C 库。 它只是一个客户端库,它与 Redis 服务器通信但本身不存储任何数据。
1 | mkdir /app/ |
原文链接:python创建自己的package
Python 包是提供一些附加功能的 Python 模块的目录。
包允许您将代码组织到单独的文件和文件夹中,并在需要的地方导入它们,使您的代码保持简洁
1 | \-packagedemo |
说明
1 | from setuptools import Extension, dist, find_packages, setup |
1 | python setup.py check |
1 | python setup.py sdist |
1 | python setup.py sdist bdist_wheel |
使用twine上传
1 | python -m twine upload --repository pypi dist/* |
输入pypi的账户和密码即可,由于网络原因会存在无法上传或出错,多重复几次即可
使用pypi安装项目
可以发布到testpypi,进行测试,testpypi会更快
1 | pip install -i https://pypi.org/simple packagename==X.X.X |
原文链接:django+uwsgi网站搭建
1 | apt install python3.8-venv |
python提供两种mysql扩展,pymysql和mysqlclient,分别对应高开发和高性能
mysqlclient:mysqlclient需要编译安装
1 | apt-get install libmysqlclient libmysqlclient-dev |
包括uwsgi,mysql,django服务
1 | pip install -r requirements.txt |
django-admin startproject projectname
django-admin startapp appname
1 | # 创建数据库映射 |
python manage.py runserver 0.0.0.0:8000
1 | sudo killall -9 uwsgi #关闭所有uwsgi进程 |
root/projectname/settings.py
1 | - ALLOWED_HOSTS = ['*'] 设置acl |
在项目根目录创建uwsgi.ini,安装下配置
迁移数据库
启动nginx,启动uwsgi
1 | sudo service nginx restart #nginx重新加载(只有当修改了nginx配置时才重启) |
1 | [uwsgi] |
云服务器本身拥有全时间段在线的能力,可以支撑我们大部分web项目的运行需求。
但是当服务器算力不够或者是数据存在安全性问题时,我们不希望将所有任务都放置在服务器中运行,
而是会选择本地的终端提供数据或者算力服务,以达到加速或保密的需求。
实现这种需求就需要本地主机与服务器进行socket通信。
服务器端建立一个server.cpp文件,使用linux socket系统调用创建socket,设置ip和端口,
使用bind和listen绑定监听,再调用accept处理连接请求。
客户端较为简单,指定IP为服务器公网IP,指定端口号,调用connect连接,互相发送问候消息验证。
server.cpp
1 | #include"sys/ipc.h" |
client.cpp
1 | #include"sys/ipc.h" |
原文链接:408-theory-Computer Network
计算机网络是一个将分散的、具有独立功能的计算机系统,通过通信设备与线路
连接起来,由功能完善的软件实现资源共享和信息传递的系统
原文链接:hexo+next主题博客-hexo部署
原文链接:hexo+next主题博客-next主题配置
在nginx配置中我们会增加blog域名的监听,我们将hexo部署在监听端口即可访问
服务器使用nginx新增代理可以参考:
1 | location / { |
具体的nginx配置方法可以参考:
使用Nginx实现多个网站代理
hexo需要使用nodejs环境
1 | npm: |
1 | rdir=/www/wwwroot/blog.aidroid.top |
修改hexo config 下theme为next
1 | next doc: https://theme-next.js.org/docs/ |
部署命令
1 |
|
##next config配置
next的默认配置文件为_config.yml
官方配置说明
next主题由于直接与博客展示关联,因此篇幅较多,专开一篇
为了让博客支持更丰富的内容,如latex公式、pdf加载等,需要安装对应扩展和设置。
1 | npm install --save hexo-pdf |
原文链接:hexo+next主题博客-next主题配置
上文链接:hexo+next主题博客-hexo部署
next主题是适配hexo的一个博客主题,由于hexo本身关注的是博客系统的效率稳定,
在界面美化方面我们选择专门的主题,不仅能够提供更好的视觉效果,还能提供更多的扩展
主要扩展以下方面:
next本身就提供了多个风格,设置主题风格
1 | # Schemes |
打开侧边栏 sidebar: true
1 | avatar:url: http://res.aidroid.top/avatar.jpg |
1 | beian: |
read_more_btn: true
1 | 同时要求分割符前要存在内容,否则不会生效 |
permalink: :title/
1 | 表示直接使用博客名 |
permalink: :mytag/:title/
1 | 这样博客链接就变成了http://example.com/mytag/title/ |
social:
GitHub: https://github.com/yasuo626 || fab fa-github
E-Mail: mailto:yasuo626.com@gmail.com || fa fa-envelope
home: https://aidroid.top
1 | #### 捐赠设置 |
npm install hexo-generator-searchdb
hexo:
search:
path: search.xml
field: post
content: true
format: html
next:
local_search:
enable: true
trigger: auto
top_n_per_article: 1
unescape: false
preload: false
1 |
|
busuanzi_count:
enable: true
total_visitors: true
total_visitors_icon: fa fa-user
total_views: true
total_views_icon: fa fa-eye
post_views: false
post_views_icon: fa fa-eye
1 |
|
next\layout_partials\footer.swig添加
### 全局html内容同步,实现广告效果
在next\layout_partials中即可实现添加自定义的服务
#### google ads
原文链接:408-theory-Principles of Computer Composition
原文链接:408-theory-Operation System