Microsoft Store上 看到最新的Ubuntu 20.04 LTS 已经适配到WSL上了, 于是卸载了老版本 18.04 LTS,安装上了最新版本的。

第一次启动会比较慢,需耐心等待

Installing, this may take a few minutes...

看了下WSL的官方文档,发现WSL对各种数据库的支持(Ref-1)还真是蛮全的。 更让我惊喜的是WSL和Window其实可以互操作(Ref-2): 既可以从 Windows 命令行运行 Linux 工具,也可以从 Linux 命令行运行 Windows 工具。以前一直以为WSL只是提供了 Linux 模拟环境,可以让使用 Windows 的开发人员敲敲 Linux 命令,哈哈,认识真的太浅薄了。这对于Redis尤其有用,再也不用安装万年不变的3.2.100(Ref-3)了(当然了,你也可以在Docker使用Redis)。

启动运行Redis,解决启动问题

安装好Redis以后,在WSL中运行Redis

root@WSL:~# redis-server --version
Redis server v=5.0.7 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=636cde3b5c7a3923 root@WSL:~# sudo service redis-server start
Starting redis-server: redis-server. root@WSL:~# redis-cli
127.0.0.1:6379> set Redis "Hello Redis!"
OK
127.0.0.1:6379> get Redis
"Hello Redis!"

设置Redis在后台运行,并查看当前进程(有两个Redis实例在运行)

root@WSL:~# redis-server --daemonize yes
1738:C 16 Aug 2020 18:03:11.055 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1738:C 16 Aug 2020 18:03:11.055 # Redis version=5.0.7, bits=64, commit=00000000, modified=0, pid=1738, just started
1738:C 16 Aug 2020 18:03:11.056 # Configuration loaded root@WSL:~# ps -aux --sort=tty,command
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 8892 284 ? Ssl 17:34 0:00 /init
redis 1602 0.0 0.0 61300 3836 ? Ssl 17:44 0:00 /usr/bin/redis-server 127.0.0.1:6379
root 1739 0.0 0.0 55668 2828 ? Ssl 18:03 0:00 redis-server *:6379
kevin 1643 0.0 0.0 18076 3528 tty1 S 17:46 0:00 -bash
root 1721 0.0 0.0 18080 3516 tty1 S 17:59 0:00 -bash
root 1642 0.0 0.0 8900 204 tty1 Ss 17:46 0:00 /init
root 1743 0.0 0.0 18880 1996 tty1 R 18:06 0:00 ps -aux --sort=tty,command
root 1720 0.0 0.0 18908 2680 tty1 S 17:59 0:00 sudo -i

把玩了一番,发现Redis无法启动,搜了以下,通过删除/var/run/redis/redis-server.pid 解决了问题。

root@WSL:~# sudo service redis-server start
Starting redis-server: start-stop-daemon: matching on world-writable pidfile /var/run/redis/redis-server.pid is insecurefailed root@WSL:~# rm -f /var/run/redis/redis-server.pid root@WSL:~# sudo service redis-server start
Starting redis-server: redis-server. root@WSL:~# sudo service redis-server status
* redis-server is running

通过CMDPowerShell运行 Redis

CMD/PowerShell 通过wsl命令进入WSL环境, 这时 WSL 会自动挂载当前目录,也可以直接wsl redis-server(Ref-4)启动 Redis。Redis在standalone模式下,Terminal中无法进行交互。

C:\>wsl
kevin@WSL:/mnt/c# redis-server
2093:C 16 Aug 2020 18:44:15.097 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
2093:C 16 Aug 2020 18:44:15.097 # Redis version=5.0.7, bits=64, commit=00000000, modified=0, pid=2093, just started
2093:C 16 Aug 2020 18:44:15.097 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
2093:M 16 Aug 2020 18:44:15.098 * Increased maximum number of open files to 10032 (it was originally set to 1024).
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 5.0.7 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 2093
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-' 2093:M 16 Aug 2020 18:44:15.109 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
2093:M 16 Aug 2020 18:44:15.110 # Server initialized
2093:M 16 Aug 2020 18:44:15.111 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
2093:M 16 Aug 2020 18:44:15.113 * Ready to accept connections

直接挂载C盘根目录可能导致按CTRL+C无法退出, 在其他启动的控制台,通过kill -9 pid终止Redis的运行。

2093:signal-handler (1597575573) Received SIGINT scheduling shutdown...
2093:M 16 Aug 2020 18:59:33.301 # User requested shutdown...
2093:M 16 Aug 2020 18:59:33.302 * Saving the final RDB snapshot before exiting.
2093:M 16 Aug 2020 18:59:33.303 # Failed opening the RDB file dump.rdb (in server root dir /mnt/c) for saving: Permission denied
2093:M 16 Aug 2020 18:59:33.304 # Error trying to save the DB, can't exit.
2093:M 16 Aug 2020 18:59:33.305 # SIGTERM received but errors trying to shut down the server, check the logs for more information

还可以通过redis-server &使Redis在后台运行(和直接redis-server运行不同,CTRL+C关闭以后,通过ps命令查看,发现仍在运行)。但是和守护模式(daemonize yes)的STAT(Ref-5) 是不同的。

kevin@WSL:/$ redis-server &
[1] 2329
kevin@WSL:/$ 2329:C 16 Aug 2020 19:36:10.196 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
2329:C 16 Aug 2020 19:36:10.196 # Redis version=5.0.7, bits=64, commit=00000000, modified=0, pid=2329, just started
2329:C 16 Aug 2020 19:36:10.196 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
2329:M 16 Aug 2020 19:36:10.197 * Increased maximum number of open files to 10032 (it was originally set to 1024).
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 5.0.7 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 2329
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-' 2329:M 16 Aug 2020 19:36:10.202 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
2329:M 16 Aug 2020 19:36:10.202 # Server initialized
2329:M 16 Aug 2020 19:36:10.202 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
2329:M 16 Aug 2020 19:36:10.202 * Ready to accept connections
^C
kevin@WSL:/$ ps -aux --sort=tty,command
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 8892 264 ? Ssl 17:34 0:00 /init
root 1972 0.0 0.0 55668 2264 ? Ssl 18:20 0:00 redis-server *:6379
redis 2169 0.0 0.0 55668 2768 ? Ssl 18:52 0:00 /usr/bin/redis-server 127.0.0.1:6379
kevin 1643 0.0 0.0 18076 3084 tty1 S 17:46 0:00 -bash
root 1721 0.0 0.0 18212 3432 tty1 S 17:59 0:00 -bash
root 1642 0.0 0.0 8900 176 tty1 Ss 17:46 0:00 /init
root 1720 0.0 0.0 18908 2140 tty1 S 17:59 0:00 sudo -i
kevin 2178 0.0 0.0 18208 3684 tty2 S 19:12 0:00 -bash
root 2177 0.0 0.0 8900 200 tty2 Ss 19:12 0:00 /init
kevin 2333 0.0 0.0 18880 2000 tty2 R 19:36 0:00 ps -aux --sort=tty,command
kevin 2329 0.1 0.0 55668 4080 tty2 Sl 19:36 0:00 redis-server

start-stop-daemon: matching on world-writable pidfile /var/run/redis/redis-server.pid is insecurefailed的更多相关文章

  1. 启动docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

    启动docker提示: docker: Got permission denied while trying to connect to the Docker daemon socket at uni ...

  2. daemon not running. starting it now on port 5037 ADB server didn't ACK

    adb kill-server adb start-server 显示如下 daemon not running. starting it now on port 5037 ADB server di ...

  3. android搭建环境错误 daemon not running. starting it now on port 5037 ADB server didn't ACK

    android搭建环境错误 daemon not running. starting it now on port 5037 ADB server didn't ACK ADB server didn ...

  4. 【转载】Docker 安装后 报 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 解决办法

    Docker Docker 安装后 报 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docke ...

  5. Cannot connect to the Docker daemon at unix:///var/run/docker.sock.问题解决

    出现Cannot connect to the Docker daemon at unix:///var/run/docker.sock时,先用tail -5f /var/log/upstart/do ...

  6. Docker未启动错误:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

    此问题是因为Docker安装后未启动所致,执行以下命令启动docker: systemctl start docker.service 具体日志如下: Connecting to ... Connec ...

  7. Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

    Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 是由 ...

  8. Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2

    环境:centos7.1 docker run -t -i centos /bin/bash 运行上面的命令开启容器时报错: /usr/bin/docker-current: Error respon ...

  9. Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.38/images/json: dial unix /var/run/docker.sock: conne

    使用docker报如下错误信息: Got permission denied while trying to connect to the Docker daemon socket at unix:/ ...

随机推荐

  1. matplotlib常见图表绘制——极坐标图-雷达图、极轴图

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:斑点鱼 极坐标轴 调用subplot()创建子图时通过设置proje ...

  2. Oracle创建自动增长列

    前言: Oracle中不像SQL Server在创建表的时候使用identity(1001,1)来创建自动增长列,而是需要结合序列(Sequences)和触发器(Triggers)来实现 创建测试表 ...

  3. jquery判断radio是否选中

    微交易-实体系统 微交易-虚拟系统   <div class="system"> <div class="systemt"> <l ...

  4. 记一次mysql关于limit和orderby的优化

    针对于大数据量查询,我们一般使用分页查询,查询出对应页的数据即可,这会大大加快查询的效率: 在排序和分页同时进行时,我们一定要注意效率问题,例如: select a.* from table1 a i ...

  5. Python basestring() 函数

    描述 basestring() 方法是 str 和 unicode 的超类(父类),也是抽象类,每组词 www.cgewang.com 因此不能被调用和实例化,但可以被用来判断一个对象是否为 str ...

  6. luogu P6570 [NOI Online #3 提高组]优秀子序列 二进制 dp

    LINK:P6570 [NOI Online #3 提高组]优秀子序列 Online 2的T3 容易很多 不过出于某种原因(时间不太够 浪了 导致我连暴力的正解都没写. 容易想到 f[i][j]表示前 ...

  7. Springboot中的CommandLineRunner

    CommandLineRunner接口的作用 在平常开发中可能需要实现在启动后执行的功能,Springboot提供了一种简单的实现方案,即实现CommandLineRunner接口,实现功能的代码在接 ...

  8. 41-native关键字的理解

    使用 native 关键字说明这个方法是原生函数,也就是这个方法是用 C/C++等非Java 语言实现的,并且被编译成了 DLL,由 java 去调用. (1)为什么要用 native 方法 java ...

  9. 记Java中有关内存的简单认识

    一.Java内存划分 分为五个部分,可以参考这篇笔记简单认识一下: https://www.cnblogs.com/unleashed/p/13268027.html 栈 堆 方法区 本地方法栈 寄存 ...

  10. jQuery 选择器笔记

    jquery基础选择器 $('选择器') 基本上与css选择器相同     demo     $('ul li')     $('.nav')     $('#box')   隐试迭代     遍历内 ...