启动redis-server后,前台就变得无法操作了,通常修改config文件可以解决这一个问题。
小插曲
为了能够winScp用root登陆,修改一下配置文件
执行 gedit /etc/ssh/sshd_config

之后将其中的“PermitRootLogin prohibit-password” 修改为“PermitRootLogin yes”。

回归正题
1,configshezh
之后同样方法,进入你redis的编译目录(非bin),
将redis config中的 将daemonize no修改为 daemonize yes
gedit redis.conf

意味着用户线程变成守护线程
这个时候再执行
redis-server /opt/tools/redis/redis-3.2.5/redis.conf

发现第一天启动时的大图标没了,并且可以继续操作,这个时候查看后台服务,发现redis已经启动,大功告成
ps -ef | grep redis

2,redis客户端访问
现在后台redis服务器已经跑起来了,我们需要进入一个可以执行redis各种命令的客户端(类似于sql developer一样的感觉)
输入命令
redis-cli

测试验证
ping
>pong (这redis开发的人员怕是热衷于乒乓?)
上面为止是redis的安装和启动,现在开始划知识点
一, redis默认16个数据库,初始默认使用0号库
可以试用select index 选择当前使用的库

二,单线程+ 多路IO复用技术
redis为什么快?
1、首先我们的db是基于内存的,也就是说少了磁盘IO的开销,博主以前因为项目原因经常要自己写统计信息,避免高IO的SQL真是苦不堪言。
2、redis是单线程的,多线程往往牵涉到底层硬件问题,还有线程优先级问题(java默认线程优先级是多少?-5)
3,IO复用,以前我们每个Socket创建一个connection,发送到app,app再安排出一个io去给你返回结果(多线程情况),往往一旦socket多的时候会造成阻塞和等待,为了解决这个问题,redis对于多个socket只使用一个IO,读作复用,在有些Socket并没有实际请求的时候并不进行IO. 另一点,对于同时到达的多个Socket进行Mapping,这样IO后的结果可以知道应该返回给哪个请求,而避免了创建多个IO造成的阻塞。
本文介绍了如何将Redis服务器设置为守护进程,以便在后台运行而不影响其他操作。通过修改redis.conf文件中的daemonize选项,启动Redis并检查其是否成功运行。此外,还讲述了如何使用redis-cli客户端连接到Redis服务器进行交互,包括切换数据库和理解Redis的单线程与多路IO复用技术,以揭示其高效性能的原因。
1563

被折叠的 条评论
为什么被折叠?



