阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

利用Magento搭建Memcached集群

454次阅读
没有评论

共计 13033 个字符,预计需要花费 33 分钟才能阅读完成。

memcached 虽然能够通过分布式缓存,实现其中 memcached 宕掉不会丢失全部缓存数据,但部分数据还是难逃一劫。

我们可以利用 magent 代理 memcached 实现主从备份来保证缓存数据完好无损,而且 magent 还可以作为从继续使用,但大体工作原理如下:

1.magent 每次写数据都会写到主 memcached 和从 memcached 上,并且向主从 memcached 写的算法一样;

2. 当主 memcached 宕掉,magent 会向从 memcached 中读取数据;

3. 当主 memcached 恢复后,magent 将重新向主 memcached 中读数据;此时由于主 memcached 刚恢复,其中并无数据,因此会导致部分数据无法读取,这也是 magent 的一大缺点。

针对 magent 的缺点有几种想法:

1. 在生产环境中主 memcached 宕掉的可能性非常小,大部分时间都是工作的;而从 memcached 只是在主 memcached 宕掉后才使用,因此从 memcached 分配的空间不可能和主 memcached 一样,这样无疑是在浪费宝贵的内存空间。

2. 既然从 memcached 分配空间较小,而随着存入的数据会越来越多,会导致缓存的数据不断被过期驱逐出内存,因此在主 memcached 宕掉后,只能暂时起到缓解数据库压力的作用。

3. 主 memcached 宕掉后,不宜直接将其启动,还是在数据库压力比较小的时候再启动吧,就当预热缓存。

总结:我引入 magent 除了主从方面,还考虑到 magent—magent 实现 memcached 入口的负载均衡,也就是说读写请求按照一定的算法分配到两个 magent 入口上,既能达到高可用,还能起到负载均衡。

Memcached 安装及启动脚本 http://www.linuxidc.com/Linux/2013-07/87641.htm

PHP 中使用 Memcached 的性能问题 http://www.linuxidc.com/Linux/2013-06/85883.htm

Ubuntu 下安装 Memcached 及命令解释 http://www.linuxidc.com/Linux/2013-06/85832.htm

Memcached 的安装和应用 http://www.linuxidc.com/Linux/2013-08/89165.htm

使用 Nginx+Memcached 的小图片存储方案 http://www.linuxidc.com/Linux/2013-11/92390.htm

Memcached 使用入门 http://www.linuxidc.com/Linux/2011-12/49516p2.htm

一。安装部分

1. 安装 memcached-1.2.2

cd libevent-2.0.22-stable
./configure –prefix=/usr/local/libevent
make
make install
cd memcached-1.2.2
./configure –prefix=/usr/local/memcached –with-libevent=/usr/local/libevent
make
make install

### 安装错误 ###
memcached.c: 在函数 ’add_iov’ 中:
memcached.c:696:30: 错误: ‘IOV_MAX’ 未声明(在此函数内第一次使用)
memcached.c:696:30: 附注: 每个未声明的标识符在其出现的函数内只报告一次
make[2]: *** [memcached-memcached.o] 错误 1

需要修改 memcached.c 文件:

/* FreeBSD 4.x doesn’t have IOV_MAX exposed. */
#ifndef IOV_MAX
#if defined(__FreeBSD__) || defined(__APPLE__)
# define IOV_MAX 1024
#endif
#endif
改成:

/* FreeBSD 4.x doesn’t have IOV_MAX exposed. */
#ifndef IOV_MAX
# define IOV_MAX 1024
#endif

### 启动错误 ###
[root@test memcached-1.2.2]# /usr/local/memcached/bin/memcached
/usr/local/memcached/bin/memcached: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory

需要修改:
ln -s /usr/local/libevent/lib/libevent-2.0.so.5 /lib64/libevent-2.0.so.5

2. 安装 magent-0.5

cd magent-0.5
/sbin/ldconfig
sed -i “s#LIBS = -levent#LIBS = -levent -lm#g” Makefile
make
报错如下:
gcc -Wall -O2 -g  -c -o magent.o magent.c
magent.c:65:19: 错误:event.h:没有那个文件或目录
magent.c:124: 错误:字段‘ev’的类型不完全
magent.c:154: 错误:字段‘ev’的类型不完全
magent.c: 在函数‘server_free’中:
magent.c:468: 警告:隐式声明函数‘event_del’
magent.c: 在函数‘put_server_into_pool’中:
magent.c:522: 错误:‘sizeof’不能用于不完全的类型‘struct event’
magent.c: 在函数‘out_string’中:
magent.c:696: 错误:‘EV_WRITE’未声明(在此函数内第一次使用)
magent.c:696: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
magent.c:696: 错误:所在的函数内也只报告一次。)
magent.c:699: 警告:隐式声明函数‘event_set’
magent.c:699: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
magent.c:700: 警告:隐式声明函数‘event_add’
magent.c: 在函数‘do_transcation’中:
magent.c:816: 错误:‘sizeof’不能用于不完全的类型‘struct event’
magent.c:818: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
magent.c:818: 错误:‘EV_WRITE’未声明(在此函数内第一次使用)
magent.c: 在函数‘start_backup_transcation’中:
magent.c:902: 错误:‘sizeof’不能用于不完全的类型‘struct event’
magent.c:904: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
magent.c:904: 错误:‘EV_WRITE’未声明(在此函数内第一次使用)
magent.c: 在函数‘try_backup_server’中:
magent.c:994: 错误:‘sizeof’不能用于不完全的类型‘struct event’
magent.c:996: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
magent.c:996: 错误:‘EV_WRITE’未声明(在此函数内第一次使用)
magent.c: 在函数‘drive_memcached_server’中:
magent.c:1014: 错误:‘EV_WRITE’未声明(在此函数内第一次使用)
magent.c:1060: 错误:‘EV_READ’未声明(在此函数内第一次使用)
magent.c:1062: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
magent.c: 在函数‘process_get_response’中:
magent.c: 在函数‘process_get_response’中:
magent.c:1236: 错误:‘EV_WRITE’未声明(在此函数内第一次使用)
magent.c:1238: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
magent.c: 在函数‘process_update_response’中:
magent.c:1283: 错误:‘EV_WRITE’未声明(在此函数内第一次使用)
magent.c:1285: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
magent.c: 在函数‘drive_backup_server’中:
magent.c:1305: 错误:‘EV_WRITE’未声明(在此函数内第一次使用)
magent.c:1343: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
magent.c:1343: 错误:‘EV_READ’未声明(在此函数内第一次使用)
magent.c: 在函数‘drive_client’中:
magent.c:1618: 错误:‘EV_READ’未声明(在此函数内第一次使用)
magent.c:1669: 错误:‘EV_WRITE’未声明(在此函数内第一次使用)
magent.c:1682: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
magent.c: 在函数‘server_accept’中:
magent.c:1734: 错误:‘sizeof’不能用于不完全的类型‘struct event’
magent.c:1735: 错误:‘EV_READ’未声明(在此函数内第一次使用)
magent.c:1735: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
magent.c: 在函数‘main’中:
magent.c:2106: 警告:隐式声明函数‘event_init’
magent.c:2111: 错误:‘EV_READ’未声明(在此函数内第一次使用)
magent.c:2111: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
magent.c:2121: 警告:隐式声明函数‘event_loop’
make: *** [magent.o] 错误 1

修改 Makefile
LIBS = -levent -lm -L/usr/local/libevent/lib
INCLUDE=-I/usr/local/libevent/include

再重新 make, 出现以下
gcc -Wall -O2 -g -I/usr/local/libevent/include -c -o magent.o magent.c
magent.c: 在函数‘writev_list’中:
magent.c:623: 错误:‘SSIZE_MAX’未声明(在此函数内第一次使用)
magent.c:623: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
magent.c:623: 错误:所在的函数内也只报告一次。)
make: *** [magent.o] 错误 1

需要修改 vim ketama.h
在第一行加上
#ifndef SSIZE_MAX
在第四行加上
#define SSIZE_MAX 32676
在最后添加
#endif

再重新 make, 出现以下则成功
[root@test magent]# make
gcc -Wall -O2 -g -I/usr/local/libevent/include -c -o magent.o magent.c
gcc -Wall -O2 -g -I/usr/local/libevent/include -c -o ketama.o ketama.c
gcc -Wall -O2 -g -o magent magent.o ketama.o -levent -lm -L/usr/local/libevent/lib

执行 magent 后又报错, 则需要执行 cp magent /usr/bin/magent
bash: magent: command not found

执行 magent 出现以下则表示成功
[root@test magent]# magent
please provide -s “ip:port” argument

memcached agent v0.4 Build-Date: Apr 23 2015 21:24:28
Usage:
  -h this message
  -u uid
  -g gid
  -p port, default is 11211. (0 to disable tcp support)
  -s ip:port, set memcached server ip and port
  -b ip:port, set backup memcached server ip and port
  -l ip, local bind ip address, default is 0.0.0.0
  -n number, set max connections, default is 4096
  -D don’t go to background
  -k use ketama key allocation algorithm
  -f file, unix socket path to listen on. default is off
  -i number, set max keep alive connections for one memcached server, default is 20
  -v verbose

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2015-06/118683p2.htm

二。部署

如上图所示:

利用 Magento 搭建 Memcached 集群

1.magent1、magent2 作为 memcached 的总入口,我们使用算法来实现负载均衡,分配读写请求,无论使用哪个入口分配到后端的 memcached 是一样的,因为它们分配 memcached 使用的都是同一个算法 consistent-hash

2. 后端 mecached1,mecached2,mecached3,mecached4 多位 4 个主 memcached

3.magent3 作为从,同时也是从 memcached 的入口,其后端还有两个 memcached5,mecached6;由 magent3,mecached5,mecached6 共同组成从 memcached

工作流程:

1.magent1,magent2 接受写请求,将 key 分别写入 mecached1-mecached4 中,同时也将 key 写入从 memcached 上,也就是 magent3 上,magent3 再分别写入 mecached5,mecached6 中;主和从都是用的同一个分配算法

2.magent1,magent2 接受读请求,将分别向主 memcached 中进行读取,而不想从 memcached 中读取;

3. 一旦 mecached1-mecached4 中有一个 memcached 宕掉,此时 magent1 和 magent2 将向从 memcached,也就是 magent3 中读取数据,达到缓存数据不丢失的效果;

4. 当主中的 memcache 恢复后,将再次加入主 memcached 中,此时 magent1 和 magent2 将不会向从 memcached 中读数据了,但是写仍正常进行;

启动如下:

memcached1-memcached6
/usr/local/memcached-1.4.22/bin/memcached -u root -d -p 11211 -m 1024 -c 102400
/usr/local/memcached-1.4.22/bin/memcached -u root -d -p 11212 -m 1024 -c 102400
/usr/local/memcached-1.4.22/bin/memcached -u root -d -p 11213 -m 1024 -c 102400
/usr/local/memcached-1.4.22/bin/memcached -u root -d -p 11214 -m 1024 -c 102400
/usr/local/memcached-1.4.22/bin/memcached -u root -d -p 11215 -m 1024 -c 102400
/usr/local/memcached-1.4.22/bin/memcached -u root -d -p 11216 -m 1024 -c 102400

magent3
/usr/bin/magent -u root -n 102400 -l 192.168.3.127 -p 12002 -s 192.168.3.127:11215 -s 192.168.3.127:11216

magent1:
usr/bin/magent -u root -n 102400 -l 192.168.3.127 -p 12000 -s 192.168.3.127:11211 -s 192.168.3.127:11212 -s 192.168.3.128:11213 -s 192.168.3.127:11214 -b 192.168.3.127:12002

magent2:
usr/bin/magent -u root -n 102400 -l 192.168.3.127 -p 12001 -s 192.168.3.127:11211 -s 192.168.3.127:11212 -s 192.168.3.128:11213 -s 192.168.3.127:11214 -b 192.168.3.127:12002

magent1,magent2 算法:

1. 可以根据 magent 总入口的个数(此处为 2),使用除以 2 取余的方式,若为 0 分配到 magent1,若为 1 分配到 magent2,这样会实现将请求平均分配到 magent1 和 magent2 上

注:

1. 若 memcached 读写的数据多,一定将关掉防火墙或将防火墙设置为不使用跟踪链接表,否则会导致 /var/log/message 报错“kernel: nf_conntrack: table full, dropping packet”,详情请参考 http://www.linuxidc.com/Linux/2015-06/118684.htm。

2. 使用 service iptables stop 关掉,并且不能用 iptables -L -vnx 查看,因此使用此命令会将防火墙开启,虽然规则是清空的,但仍会记录连接跟踪表。

Memcached 的详细介绍:请点这里
Memcached 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-06/118683.htm

memcached 虽然能够通过分布式缓存,实现其中 memcached 宕掉不会丢失全部缓存数据,但部分数据还是难逃一劫。

我们可以利用 magent 代理 memcached 实现主从备份来保证缓存数据完好无损,而且 magent 还可以作为从继续使用,但大体工作原理如下:

1.magent 每次写数据都会写到主 memcached 和从 memcached 上,并且向主从 memcached 写的算法一样;

2. 当主 memcached 宕掉,magent 会向从 memcached 中读取数据;

3. 当主 memcached 恢复后,magent 将重新向主 memcached 中读数据;此时由于主 memcached 刚恢复,其中并无数据,因此会导致部分数据无法读取,这也是 magent 的一大缺点。

针对 magent 的缺点有几种想法:

1. 在生产环境中主 memcached 宕掉的可能性非常小,大部分时间都是工作的;而从 memcached 只是在主 memcached 宕掉后才使用,因此从 memcached 分配的空间不可能和主 memcached 一样,这样无疑是在浪费宝贵的内存空间。

2. 既然从 memcached 分配空间较小,而随着存入的数据会越来越多,会导致缓存的数据不断被过期驱逐出内存,因此在主 memcached 宕掉后,只能暂时起到缓解数据库压力的作用。

3. 主 memcached 宕掉后,不宜直接将其启动,还是在数据库压力比较小的时候再启动吧,就当预热缓存。

总结:我引入 magent 除了主从方面,还考虑到 magent—magent 实现 memcached 入口的负载均衡,也就是说读写请求按照一定的算法分配到两个 magent 入口上,既能达到高可用,还能起到负载均衡。

Memcached 安装及启动脚本 http://www.linuxidc.com/Linux/2013-07/87641.htm

PHP 中使用 Memcached 的性能问题 http://www.linuxidc.com/Linux/2013-06/85883.htm

Ubuntu 下安装 Memcached 及命令解释 http://www.linuxidc.com/Linux/2013-06/85832.htm

Memcached 的安装和应用 http://www.linuxidc.com/Linux/2013-08/89165.htm

使用 Nginx+Memcached 的小图片存储方案 http://www.linuxidc.com/Linux/2013-11/92390.htm

Memcached 使用入门 http://www.linuxidc.com/Linux/2011-12/49516p2.htm

一。安装部分

1. 安装 memcached-1.2.2

cd libevent-2.0.22-stable
./configure –prefix=/usr/local/libevent
make
make install
cd memcached-1.2.2
./configure –prefix=/usr/local/memcached –with-libevent=/usr/local/libevent
make
make install

### 安装错误 ###
memcached.c: 在函数 ’add_iov’ 中:
memcached.c:696:30: 错误: ‘IOV_MAX’ 未声明(在此函数内第一次使用)
memcached.c:696:30: 附注: 每个未声明的标识符在其出现的函数内只报告一次
make[2]: *** [memcached-memcached.o] 错误 1

需要修改 memcached.c 文件:

/* FreeBSD 4.x doesn’t have IOV_MAX exposed. */
#ifndef IOV_MAX
#if defined(__FreeBSD__) || defined(__APPLE__)
# define IOV_MAX 1024
#endif
#endif
改成:

/* FreeBSD 4.x doesn’t have IOV_MAX exposed. */
#ifndef IOV_MAX
# define IOV_MAX 1024
#endif

### 启动错误 ###
[root@test memcached-1.2.2]# /usr/local/memcached/bin/memcached
/usr/local/memcached/bin/memcached: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory

需要修改:
ln -s /usr/local/libevent/lib/libevent-2.0.so.5 /lib64/libevent-2.0.so.5

2. 安装 magent-0.5

cd magent-0.5
/sbin/ldconfig
sed -i “s#LIBS = -levent#LIBS = -levent -lm#g” Makefile
make
报错如下:
gcc -Wall -O2 -g  -c -o magent.o magent.c
magent.c:65:19: 错误:event.h:没有那个文件或目录
magent.c:124: 错误:字段‘ev’的类型不完全
magent.c:154: 错误:字段‘ev’的类型不完全
magent.c: 在函数‘server_free’中:
magent.c:468: 警告:隐式声明函数‘event_del’
magent.c: 在函数‘put_server_into_pool’中:
magent.c:522: 错误:‘sizeof’不能用于不完全的类型‘struct event’
magent.c: 在函数‘out_string’中:
magent.c:696: 错误:‘EV_WRITE’未声明(在此函数内第一次使用)
magent.c:696: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
magent.c:696: 错误:所在的函数内也只报告一次。)
magent.c:699: 警告:隐式声明函数‘event_set’
magent.c:699: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
magent.c:700: 警告:隐式声明函数‘event_add’
magent.c: 在函数‘do_transcation’中:
magent.c:816: 错误:‘sizeof’不能用于不完全的类型‘struct event’
magent.c:818: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
magent.c:818: 错误:‘EV_WRITE’未声明(在此函数内第一次使用)
magent.c: 在函数‘start_backup_transcation’中:
magent.c:902: 错误:‘sizeof’不能用于不完全的类型‘struct event’
magent.c:904: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
magent.c:904: 错误:‘EV_WRITE’未声明(在此函数内第一次使用)
magent.c: 在函数‘try_backup_server’中:
magent.c:994: 错误:‘sizeof’不能用于不完全的类型‘struct event’
magent.c:996: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
magent.c:996: 错误:‘EV_WRITE’未声明(在此函数内第一次使用)
magent.c: 在函数‘drive_memcached_server’中:
magent.c:1014: 错误:‘EV_WRITE’未声明(在此函数内第一次使用)
magent.c:1060: 错误:‘EV_READ’未声明(在此函数内第一次使用)
magent.c:1062: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
magent.c: 在函数‘process_get_response’中:
magent.c: 在函数‘process_get_response’中:
magent.c:1236: 错误:‘EV_WRITE’未声明(在此函数内第一次使用)
magent.c:1238: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
magent.c: 在函数‘process_update_response’中:
magent.c:1283: 错误:‘EV_WRITE’未声明(在此函数内第一次使用)
magent.c:1285: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
magent.c: 在函数‘drive_backup_server’中:
magent.c:1305: 错误:‘EV_WRITE’未声明(在此函数内第一次使用)
magent.c:1343: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
magent.c:1343: 错误:‘EV_READ’未声明(在此函数内第一次使用)
magent.c: 在函数‘drive_client’中:
magent.c:1618: 错误:‘EV_READ’未声明(在此函数内第一次使用)
magent.c:1669: 错误:‘EV_WRITE’未声明(在此函数内第一次使用)
magent.c:1682: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
magent.c: 在函数‘server_accept’中:
magent.c:1734: 错误:‘sizeof’不能用于不完全的类型‘struct event’
magent.c:1735: 错误:‘EV_READ’未声明(在此函数内第一次使用)
magent.c:1735: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
magent.c: 在函数‘main’中:
magent.c:2106: 警告:隐式声明函数‘event_init’
magent.c:2111: 错误:‘EV_READ’未声明(在此函数内第一次使用)
magent.c:2111: 错误:‘EV_PERSIST’未声明(在此函数内第一次使用)
magent.c:2121: 警告:隐式声明函数‘event_loop’
make: *** [magent.o] 错误 1

修改 Makefile
LIBS = -levent -lm -L/usr/local/libevent/lib
INCLUDE=-I/usr/local/libevent/include

再重新 make, 出现以下
gcc -Wall -O2 -g -I/usr/local/libevent/include -c -o magent.o magent.c
magent.c: 在函数‘writev_list’中:
magent.c:623: 错误:‘SSIZE_MAX’未声明(在此函数内第一次使用)
magent.c:623: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
magent.c:623: 错误:所在的函数内也只报告一次。)
make: *** [magent.o] 错误 1

需要修改 vim ketama.h
在第一行加上
#ifndef SSIZE_MAX
在第四行加上
#define SSIZE_MAX 32676
在最后添加
#endif

再重新 make, 出现以下则成功
[root@test magent]# make
gcc -Wall -O2 -g -I/usr/local/libevent/include -c -o magent.o magent.c
gcc -Wall -O2 -g -I/usr/local/libevent/include -c -o ketama.o ketama.c
gcc -Wall -O2 -g -o magent magent.o ketama.o -levent -lm -L/usr/local/libevent/lib

执行 magent 后又报错, 则需要执行 cp magent /usr/bin/magent
bash: magent: command not found

执行 magent 出现以下则表示成功
[root@test magent]# magent
please provide -s “ip:port” argument

memcached agent v0.4 Build-Date: Apr 23 2015 21:24:28
Usage:
  -h this message
  -u uid
  -g gid
  -p port, default is 11211. (0 to disable tcp support)
  -s ip:port, set memcached server ip and port
  -b ip:port, set backup memcached server ip and port
  -l ip, local bind ip address, default is 0.0.0.0
  -n number, set max connections, default is 4096
  -D don’t go to background
  -k use ketama key allocation algorithm
  -f file, unix socket path to listen on. default is off
  -i number, set max keep alive connections for one memcached server, default is 20
  -v verbose

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2015-06/118683p2.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计13033字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7999348
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...
小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比

小白也能看懂:什么是云服务器?腾讯云 vs 阿里云对比 星哥玩云,带你从小白到上云高手。今天咱们就来聊聊——什...
在Windows系统中通过VMware安装苹果macOS15

在Windows系统中通过VMware安装苹果macOS15

在 Windows 系统中通过 VMware 安装苹果 macOS15 许多开发者和爱好者希望在 Window...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare也瘫了连监控都挂,根因藏在哪?

支付宝、淘宝、闲鱼又双叕崩了,Cloudflare 也瘫了连监控都挂,根因藏在哪? 最近两天的互联网堪称“故障...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...