安装环境

序号

项目

1

OS版本

Red Hat Enterprise Linux Server release 7.1 (Maipo)

2

内核版本

3.10.0-229.el7.x86_64

3

Redis

redis-4.0.1

4

Ruby

ruby 2.3.4p301 (2017-03-30 revision 58214) [x86_64-linux]

节点信息规划

本来只准备部署7001-7004 4个实例,但是redis集群提示最少需要3个主节点,6个节点才能完成启动,所以后面2个是后来加的。

注意:这里因为是测试环境,所以将所有实例都放在了一台机器上,生产建议主备节点不要放在一台机器上

序号

IP地址

端口

主备

节点配置文件

1

192.168.9.216

7001

/opt/redis-cluster/nodes-7001/redis.conf

2

192.168.9.216

7002

/opt/redis-cluster/nodes-7002/redis.conf

3

192.168.9.216

7003

/opt/redis-cluster/nodes-7003/redis.conf

4

192.168.9.216

7004

/opt/redis-cluster/nodes-7004/redis.conf

5

192.168.9.216

7005

/opt/redis-cluster/nodes-7005/redis.conf

6

192.168.9.216

7006

/opt/redis-cluster/nodes-7006/redis.conf

环境安装(按照正常安装步骤,碰到问题再解决)

1.下载redis-4.0.1.tar.gz源码包

[root@elk01 opt]# wget http://download.redis.io/releases/redis-4.0.1.tar.gz
--2017-10-26 09:33:23-- http://download.redis.io/releases/redis-4.0.1.tar.gz
Resolving download.redis.io (download.redis.io)... 109.74.203.151
Connecting to download.redis.io (download.redis.io)|109.74.203.151|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1711660 (1.6M) [application/x-gzip]
Saving to: ‘redis-4.0.1.tar.gz’ 100%[======================================================>] 1,711,660 426KB/s in 3.9s 2017-10-26 09:33:28 (426 KB/s) - ‘redis-4.0.1.tar.gz’ saved [1711660/1711660] [root@elk01 opt]# ll redis-4.0.1.tar.gz
-rw-r--r-- 1 root root 1711660 Jul 24 21:59 redis-4.0.1.tar.gz

2.解压并安装

[root@elk01 opt]# pwd
/opt
[root@elk01 opt]# tar xf redis-4.0.1.tar.gz
[root@elk01 opt]# cd redis-4.0.1
[root@elk01 redis-4.0.1]# ll
total 272
-rw-rw-r-- 1 root root 127778 Jul 24 21:58 00-RELEASENOTES
-rw-rw-r-- 1 root root 53 Jul 24 21:58 BUGS
-rw-rw-r-- 1 root root 1815 Jul 24 21:58 CONTRIBUTING
-rw-rw-r-- 1 root root 1487 Jul 24 21:58 COPYING
drwxrwxr-x 6 root root 117 Jul 24 21:58 deps
-rw-rw-r-- 1 root root 11 Jul 24 21:58 INSTALL
-rw-rw-r-- 1 root root 151 Jul 24 21:58 Makefile
-rw-rw-r-- 1 root root 4223 Jul 24 21:58 MANIFESTO
-rw-rw-r-- 1 root root 20530 Jul 24 21:58 README.md
-rw-rw-r-- 1 root root 57764 Jul 24 21:58 redis.conf
-rwxrwxr-x 1 root root 271 Jul 24 21:58 runtest
-rwxrwxr-x 1 root root 280 Jul 24 21:58 runtest-cluster
-rwxrwxr-x 1 root root 281 Jul 24 21:58 runtest-sentinel
-rw-rw-r-- 1 root root 7606 Jul 24 21:58 sentinel.conf
drwxrwxr-x 3 root root 4096 Jul 24 21:58 src
drwxrwxr-x 10 root root 4096 Jul 24 21:58 tests
drwxrwxr-x 8 root root 4096 Jul 24 21:58 utils
#执行make命令
如果没有报错可以执行make test命令
[root@elk01 redis-4.0.1]# make test
cd src && make test
make[1]: Entering directory `/opt/redis-4.0.1/src'
You need tcl 8.5 or newer in order to run the Redis test #提示需要tcl
make[1]: *** [test] Error 1
make[1]: Leaving directory `/opt/redis-4.0.1/src'
make: *** [test] Error 2
# yum安装tcl
[root@elk01 redis-4.0.1]# yum install -y tcl

Installed:
tcl.x86_64 1:8.5.13-8.el7 Complete!
[root@elk01 redis-4.0.1]# make test
… \o/ All tests passed without errors! Cleanup: may take some time... OK
make[1]: Leaving directory `/opt/redis-4.0.1/src'
#将redis的执行脚本拷贝到PATH变量所在的目录
[root@elk01 redis]# cp -a src/redis-server src/redis-cli src/redis-sentinel src/redis-trib.rb src/redis-check-aof src/redis-check-rdb src/redis-benchmark /usr/local/bin/

3.配置redis集群文件

[root@elk01 redis-4.0.1]# mkdir redis-cluster
You have mail in /var/spool/mail/root
[root@elk01 redis-4.0.1]# mkdir redis-cluster/nodes-{7001,7002,7003,7004}
[root@elk01 redis-4.0.1]# ll redis-cluster/
total 0
drwxr-xr-x 2 root root 6 Oct 26 13:27 nodes-7001
drwxr-xr-x 2 root root 6 Oct 26 13:27 nodes-7002
drwxr-xr-x 2 root root 6 Oct 26 13:27 nodes-7003
drwxr-xr-x 2 root root 6 Oct 26 13:27 nodes-7004
[root@elk01 redis-4.0.1]# mv redis-cluster /opt/
[root@elk01 redis-4.0.1]# cd /opt/
[root@elk01 opt]# ln -s redis-4.0.1 redis
#按需修改配置文件(以nodes-7001实例为例)
[root@elk01 nodes-7001]# egrep -v "^#|^$" redis.conf
bind 127.0.0.1 192.168.9.216
protected-mode yes
port 7001
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised no
pidfile redis_7001.pid
loglevel notice
logfile "/opt/redis-cluster/nodes-7001/redis_7001.log"
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /opt/redis-cluster/nodes-7001/
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
slave-lazy-flush no
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble no
lua-time-limit 5000
cluster-enabled yes
cluster-config-file nodes-7001.conf
cluster-node-timeout 15000
cluster-slave-validity-factor 10
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

4.启动redis及创建集群

依次启动各个redis实例

#启动redis实例
[root@elk01 redis-cluster]# redis-server /opt/redis-cluster/nodes-7002/redis.conf
[root@elk01 redis-cluster]# ll nodes-7002/ #里面新增了一些文件
total 72
-rw-r--r-- 1 root root 0 Oct 26 14:20 appendonly.aof
-rw-r--r-- 1 root root 114 Oct 26 14:20 nodes-7002.conf #自动生成的集群配置文件
-rw-r--r-- 1 root root 2555 Oct 26 14:20 redis_7002.log
-rw-r--r-- 1 root root 6 Oct 26 14:20 redis_7002.pid
-rw-r--r-- 1 root root 57834 Oct 26 14:19 redis.conf
[root@elk01 redis-cluster]# ps -ef | grep redis
root 15721 1 0 14:04 ? 00:00:01 redis-server *:7001 [cluster]
root 19526 1 0 14:20 ? 00:00:00 redis-server *:7002 [cluster]
root 20117 1 0 14:23 ? 00:00:00 redis-server *:7003 [cluster]
root 20124 1 0 14:23 ? 00:00:00 redis-server *:7004 [cluster]
#创建redis集群
创建redis集群使用redis-trib.rb命令,该命令是基于ruby的脚本,需要安装ruby,ruby-gem以及gem-redis
[root@elk01 redis-cluster]# redis-trib.rb create --replicas 1 192.168.9.216:7001 192.168.9.216:7002 192.168.9.216:7003 192.168.9.216:7004
/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError)
from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/bin/redis-trib.rb:25:in `<main>'
#卸载老版本ruby2.0.0,安装ruby2.2.2以上版本
[root@elk01 ~]# ruby -v
ruby 2.0.0p648 (2015-12-16) [x86_64-linux]
[root@elk01 ~]# rpm -qa | grep ruby
ruby-libs-2.0.0.648-29.el7.x86_64
rubygem-bigdecimal-1.2.0-29.el7.x86_64
rubygems-2.0.14.1-29.el7.noarch
rubygem-psych-2.0.0-29.el7.x86_64
rubygem-json-1.7.7-29.el7.x86_64
ruby-irb-2.0.0.648-29.el7.noarch
rubygem-io-console-0.4.2-29.el7.x86_64
ruby-2.0.0.648-29.el7.x86_64
rubygem-rdoc-4.0.0-29.el7.noarch
[root@elk01 ~]# yum erase ruby

[root@elk01 ~]# rpm -qa | grep ruby
ruby-libs-2.0.0.648-29.el7.x86_64
#安装新版本ruby
[root@elk01 ruby-2.3.4]# pwd
/root/ruby-2.3.4
[root@elk01 ruby-2.3.4]# ./configure

checking for nroff... /usr/bin/nroff
.ext/include/x86_64-linux/ruby/config.h unchanged
configure: ruby library version = 2.3.0
configure: creating ./config.status
config.status: creating GNUmakefile
config.status: creating Makefile
config.status: creating ruby-2.3.pc
[root@elk01 ruby-2.3.4]# make && make install

installing bundle gems: /usr/local/lib/ruby/gems/2.3.0 (build_info, cache, doc, extensions, gems, specifications)
did_you_mean 1.0.0
power_assert 0.2.6
test-unit 3.1.5
net-telnet 0.1.1
minitest 5.8.5
rake 10.4.2
installing rdoc: /usr/local/share/ri/2.3.0/system
installing capi-docs: /usr/local/share/doc/ruby
[root@elk01 ruby-2.3.4]# ruby -v
ruby 2.3.4p301 (2017-03-30 revision 58214) [x86_64-linux] #新版本ruby
#安装ruby-redis.gem
推荐:如果默认国外的gem源连不上或者很慢,可以试试国内源
添加国内源命令:gem source -a https://gems.ruby-china.org
删除国外源并添加国内源:gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
#检测gem源,注意RubyGems源尽量用新版本,官方建议2.6.X,但是我用2.5.2也没什么问题
[root@elk01 redis-cluster]# gem source -l
*** CURRENT SOURCES *** https://rubygems.org/ #国外源
https://gems.ruby-china.org #国内源
[root@elk01 ruby-2.3.4]# gem install redis
Fetching: redis-4.0.1.gem (100%)
Successfully installed redis-4.0.1
Parsing documentation for redis-4.0.1
Installing ri documentation for redis-4.0.1
Done installing documentation for redis after 1 seconds
1 gem installed
[root@elk01 redis-cluster]# redis-trib.rb create --replicas 1 192.168.9.216:7001 192.168.9.216:7002 192.168.9.216:7003 192.168.9.216:7004
>>> Creating cluster
*** ERROR: Invalid configuration for cluster creation. #错误表示redis集群至少要3个主,6个节点
*** Redis Cluster requires at least 3 master nodes.
*** This is not possible with 4 nodes and 1 replicas per node.
*** At least 6 nodes are required.
#新增两个节点
[root@elk01 redis-cluster]# mkdir nodes-7005
[root@elk01 redis-cluster]# mkdir nodes-7006
You have mail in /var/spool/mail/root
[root@elk01 redis-cluster]# cp nodes-7001/redis.conf nodes-7005/
[root@elk01 redis-cluster]# cp nodes-7001/redis.conf nodes-7006/
[root@elk01 redis-cluster]# vim nodes-7005/redis.conf
[root@elk01 redis-cluster]# vim nodes-7006/redis.conf
[root@elk01 redis-cluster]# ll
total 0
drwxr-xr-x 2 root root 123 Oct 26 17:30 nodes-7001
drwxr-xr-x 2 root root 123 Oct 26 17:31 nodes-7002
drwxr-xr-x 2 root root 123 Oct 26 17:31 nodes-7003
drwxr-xr-x 2 root root 123 Oct 26 17:31 nodes-7004
drwxr-xr-x 2 root root 23 Oct 26 17:33 nodes-7005
drwxr-xr-x 2 root root 23 Oct 26 17:33 nodes-7006
[root@elk01 redis-cluster]# redis-server /opt/redis-cluster/nodes-7005/redis.conf
[root@elk01 redis-cluster]# redis-server /opt/redis-cluster/nodes-7006/redis.conf
[root@elk01 redis-cluster]# ps -ef | grep redis
root 19865 1 0 17:30 ? 00:00:00 redis-server 127.0.0.1:7001 [cluster]
root 19963 1 0 17:31 ? 00:00:00 redis-server 127.0.0.1:7002 [cluster]
root 20055 1 0 17:31 ? 00:00:00 redis-server 127.0.0.1:7003 [cluster]
root 20117 1 0 17:31 ? 00:00:00 redis-server 127.0.0.1:7004 [cluster]
root 20831 1 0 17:34 ? 00:00:00 redis-server 127.0.0.1:7005 [cluster]
root 20839 1 0 17:34 ? 00:00:00 redis-server 127.0.0.1:7006 [cluster]
#创建集群成功
[root@elk01 redis-cluster]# redis-trib.rb create --replicas 1 192.168.9.216:7001 192.168.9.216:7002 192.168.9.216:7003 192.168.9.216:7004 192.168.9.216:7005 192.168.9.216:7006
>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.9.216:7001
192.168.9.216:7002
192.168.9.216:7003
Adding replica 192.168.9.216:7004 to 192.168.9.216:7001
Adding replica 192.168.9.216:7005 to 192.168.9.216:7002
Adding replica 192.168.9.216:7006 to 192.168.9.216:7003
M: 23df12c2bafde34f5bdd53d3463ad20b8ab507d2 192.168.9.216:7001
slots:0-5460 (5461 slots) master
M: 82b493cdc4d76f3ff4dbe91240290e2c3939f1ef 192.168.9.216:7002
slots:5461-10922 (5462 slots) master
M: 7b9d9f8378cb0b27134cae105ccd59146d386739 192.168.9.216:7003
slots:10923-16383 (5461 slots) master
S: 71a66eff2283d417373e90ed372d2de8703bf226 192.168.9.216:7004
replicates 23df12c2bafde34f5bdd53d3463ad20b8ab507d2
S: 2c80b6ac34a9d6c38ff425e4cb830ba579740831 192.168.9.216:7005
replicates 82b493cdc4d76f3ff4dbe91240290e2c3939f1ef
S: 44976e464ce8146f7a6932faad2f4ad3c9bdd06d 192.168.9.216:7006
replicates 7b9d9f8378cb0b27134cae105ccd59146d386739
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join..
>>> Performing Cluster Check (using node 192.168.9.216:7001)
M: 23df12c2bafde34f5bdd53d3463ad20b8ab507d2 192.168.9.216:7001
slots:0-5460 (5461 slots) master
1 additional replica(s)
M: 82b493cdc4d76f3ff4dbe91240290e2c3939f1ef 127.0.0.1:7002
slots:5461-10922 (5462 slots) master
1 additional replica(s)
S: 71a66eff2283d417373e90ed372d2de8703bf226 127.0.0.1:7004
slots: (0 slots) slave
replicates 23df12c2bafde34f5bdd53d3463ad20b8ab507d2
S: 44976e464ce8146f7a6932faad2f4ad3c9bdd06d 127.0.0.1:7006
slots: (0 slots) slave
replicates 7b9d9f8378cb0b27134cae105ccd59146d386739
S: 2c80b6ac34a9d6c38ff425e4cb830ba579740831 127.0.0.1:7005
slots: (0 slots) slave
replicates 82b493cdc4d76f3ff4dbe91240290e2c3939f1ef
M: 7b9d9f8378cb0b27134cae105ccd59146d386739 127.0.0.1:7003
slots:10923-16383 (5461 slots) master
1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

5.测试集群

[root@elk01 redis-cluster]# redis-cli -c -p 7001  #登录集群,-c参数是必需的
127.0.0.1:7001> CLUSTER info
cluster_state:ok
cluster_slots_assigned:16384
cluster_slots_ok:16384
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:6
cluster_my_epoch:1
cluster_stats_messages_ping_sent:115
cluster_stats_messages_pong_sent:125
cluster_stats_messages_sent:240
cluster_stats_messages_ping_received:120
cluster_stats_messages_pong_received:115
cluster_stats_messages_meet_received:5
cluster_stats_messages_received:240
127.0.0.1:7001> CLUSTER nodes
82b493cdc4d76f3ff4dbe91240290e2c3939f1ef 127.0.0.1:7002@17002 master - 0 1509010649120 2 connected 5461-10922
71a66eff2283d417373e90ed372d2de8703bf226 127.0.0.1:7004@17004 slave 23df12c2bafde34f5bdd53d3463ad20b8ab507d2 0 1509010648118 4 connected
44976e464ce8146f7a6932faad2f4ad3c9bdd06d 127.0.0.1:7006@17006 slave 7b9d9f8378cb0b27134cae105ccd59146d386739 0 1509010650123 6 connected
2c80b6ac34a9d6c38ff425e4cb830ba579740831 127.0.0.1:7005@17005 slave 82b493cdc4d76f3ff4dbe91240290e2c3939f1ef 0 1509010651126 5 connected
7b9d9f8378cb0b27134cae105ccd59146d386739 127.0.0.1:7003@17003 master - 0 1509010649000 3 connected 10923-16383
23df12c2bafde34f5bdd53d3463ad20b8ab507d2 192.168.9.216:7001@17001 myself,master - 0 1509010649000 1 connected 0-5460
127.0.0.1:7001> set foo bar
-> Redirected to slot [12182] located at 127.0.0.1:7003
OK
127.0.0.1:7003> get foo
"bar"

http://www.cnblogs.com/yehaifeng/p/7738439.html

http://www.cnblogs.com/gomysql/p/4413922.html

http://www.cnblogs.com/fuquanjun/articles/5364101.html

https://www.cnblogs.com/wuxl360/p/5920330.html

redis4.0.1集群安装部署的更多相关文章

  1. HBase集群安装部署

    0x01 软件环境 OS: CentOS6.5 x64 java: jdk1.8.0_111 hadoop: hadoop-2.5.2 hbase: hbase-0.98.24 0x02 集群概况 I ...

  2. 菜鸟玩云计算之十九:Hadoop 2.5.0 HA 集群安装第2章

    菜鸟玩云计算之十九:Hadoop 2.5.0 HA 集群安装第2章 cheungmine, 2014-10-26 在上一章中,我们准备好了计算机和软件.本章开始部署hadoop 高可用集群. 2 部署 ...

  3. 菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章

    菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章 cheungmine, 2014-10-25 0 引言 在生产环境上安装Hadoop高可用集群一直是一个需要极度耐心和体力的细致工作 ...

  4. flink部署操作-flink standalone集群安装部署

    flink集群安装部署 standalone集群模式 必须依赖 必须的软件 JAVA_HOME配置 flink安装 配置flink 启动flink 添加Jobmanager/taskmanager 实 ...

  5. HBase 1.2.6 完全分布式集群安装部署详细过程

    Apache HBase 是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,是NoSQL数据库,基于Google Bigtable思想的开源实现,可在廉价的PC Server上搭建大规模结构化存 ...

  6. 1.Hadoop集群安装部署

    Hadoop集群安装部署 1.介绍 (1)架构模型 (2)使用工具 VMWARE cenos7 Xshell Xftp jdk-8u91-linux-x64.rpm hadoop-2.7.3.tar. ...

  7. 2 Hadoop集群安装部署准备

    2 Hadoop集群安装部署准备 集群安装前需要考虑的几点硬件选型--CPU.内存.磁盘.网卡等--什么配置?需要多少? 网络规划--1 GB? 10 GB?--网络拓扑? 操作系统选型及基础环境-- ...

  8. K8S集群安装部署

    K8S集群安装部署   参考地址:https://www.cnblogs.com/xkops/p/6169034.html 1. 确保系统已经安装epel-release源 # yum -y inst ...

  9. 【分布式】Zookeeper伪集群安装部署

    zookeeper:伪集群安装部署 只有一台linux主机,但却想要模拟搭建一套zookeeper集群的环境.可以使用伪集群模式来搭建.伪集群模式本质上就是在一个linux操作系统里面启动多个zook ...

随机推荐

  1. node拦截器设置

    node的拦截器主要目的是用户登录的时候为用户存了一个session,用户登录后的其他操作都要经过拦截器,对比session的值,并把session的过期时间延长. 拦截器主要是在路由文件routes ...

  2. verilog FAQ(zz)

    1. What is the race condition in verilog? Ans :The situation when two expressions are allowed to exe ...

  3. nodejs/REPL环境命令行操作命令

    1,输入node 进入node[REPL]环境 2,按两次[ctrl+c]退出node[REPL]环境 3,上箭头会查找上次输入的命令 4,cls清屏 5,tab键会自动补全路径 6,REPL环境

  4. Go panic recover

    panic 1. 停止当前函数执行 2. 一直向上返回,执行每一层的defer 3. 如果没有遇到recover, 程序退出 recover 1. 仅在defer调用中使用 2. 获取panic的值 ...

  5. 导出android真机上应用的apk文件

    1. 首先你的手机要开启调试模式 2. 终端输入命令行 (这个时候需要在手机端打开此应用.它的思路是抓取出当前窗口的包名.以下命令操作自己未亲自验证.) adb shell dumpsys windo ...

  6. 做一个完整的Java Web项目需要掌握的技能

    最近自己做了几个JavaWeb项目,有公司的商业项目,也有个人做着玩的小项目,写篇文章记录总结一下收获,列举出在做项目的整个过程中,所需要用到的技能和知识点,带给还没有真正接触过完整Java Web项 ...

  7. PyCharm 的升级、设置快捷方式

    05. PyCharm 的升级以及其他 PyCharm 提供了对 学生和教师免费使用的版本 教育版下载地址:https://www.jetbrains.com/pycharm-edu/download ...

  8. ActiveMq 高级特性的使用

    消费者的 destination 可以使用 wildcards 生产者的 destination 可以使用 composite destinations VirtualTopic 真是一大利器,当初读 ...

  9. 解决:Elipse配置Jython Interpreters时报错Error: Python stdlib source files not found

    今天学习lynnLi的博客monkeyrunner之eclipse中运行monkeyrunner脚本之环境搭建(四)时,遇到了一个问题,即: lynnLi给出的解决办法是:将Python下的Lib拷贝 ...

  10. Alfred 2

    Alfred https://www.alfredapp.com/ Alfred Workflow https://www.alfredapp.com/workflows/ http://www.pa ...