Linux下安装和配置redis
在linux环境下下载redis
$ yum -y install wget
下载redis:
所有redis历史版本都在:https://download.redis.io/releases/下,这里下载4.0.8版本的redis
$ wget https://download.redis.io/releases/redis-4.0.8.tar.gz
解压:
$ tar xzvf redis-4.0.8.tar.gz
由于新安装的Linux系统没有安装gcc环境,需要安装gcc,选择用yum进行安装。
问题:解决“jemalloc/jemalloc.h:no such file or directory“问题,在进行编译(因为上次编译失败,有残留的文件,只是本人安装过程中遇到的问题,没有的可以忽略此步)
$ make distclean
$ cd redis-4.0.8
$ make
$ cd src
$ make && make install
$ cd /kkb/soft/redis-4.0.8
添加新的文件:$ mkdir /kkb/soft/redis-4.0.8/etc
移动配置文件:$ mv redis.conf /kkb/soft/redis-4.0.8/etc
再配置redis为后台启动
$ vi /kkb/soft/redis-4.0.8/etc/redis.conf
进入修改daemonize no为yes(/搜索daemonize,i进入编辑模式修改之后esc退出Shift:+wq保存)
启动redis(后面是自己redis-server的位置,redis编译成功之后,在src文件夹下有redis-server)
$ redis-server /kkb/soft/redis-4.0.8/src
#Ctrl+C可以退出
接下来修改密码
redis-cli
#之后输入命令检查先前的密码,这步可有可无(显示""意思是你因为新安装的redis没有设置密码)
$ config get requirepass
#设置密码(短暂性设置,下次登录不会)
$ config set requirepass mypassword
mypassword:设置为自己的密码
#设置成功的话会返回‘OK’字样
#重启redis-server
#接着输入
$ redis-cil
#测试命令
127.0.0.1:6379> PING
#终端返回
(error) NOAUTH Authentication required.
原因:没有输入密码
解决:命令行中输入:
127.0.0.1:6379> auth mypassword
终端返回‘OK’,证明登入成功,这时候再次输入PING
终端返回‘PONG’如下图
输入quit退出
以上设置密码是暂时性的,关闭redis服务后会在打开会显示你没有设置密码
redis 密码永久设置需要修改redis.conf配置文件
$ vim /kkb/soft/redis-4.0.8/etc/redis.conf
找到这一行
# requirepass foobared
去掉注释,在foobared上设置自己的密码
requirepass mypassword
esc退出编辑模式,:wq 保存退出
注:redis.conf文件是只读文件,需要有修改权限。
输入su再输入密码获得管理员权限就可以修改了
------------------------------------------
启动redis服务命令:
$ redis-server /kkb/soft/redis-4.0.8/etc/redis.conf
启动后,配置文件的密码生效
------------------------------------------
更新:
用pycharm尝试连接centos虚拟机下的redis
import redis pool=redis.ConnectionPool(host='192.168.51.100',password='123456') r=redis.Redis(connection_pool=pool) print(r.get('name').decode('utf8'))
报错:计算机积极拒绝连接
先在windows cmd命令行输入(ip地址为centos的IP地址)
ping 192.168.51.100
ping得通,说明问题不是虚拟机的
那也许是redis.conf文件的配置需要修改一下
查阅网上资料
将redis.conf文件的、
protected-mode yes改为no
将bind 127.0.0.1注释掉
重新启用redis-server,再次尝试连接,还是同样的错误
最后尝试切换下用户
$ su
$ password:
尝试插入一个数据,再次连接,成功
总结一下:
su命令的作用为变换为其他用户。
su是switch user的缩写,翻译为中文就是切换用户
在不加参数的情况下,su命令默认表示切换到root用户,之后只要输入root密码就可以切换身份为root了,完成操作后,使用exit命令可以退出root切换到原先的用户。
也许还会用到su-,那和su命令有什么区别呢?
使用su-命令切换用户后,用户环境会变成root,而单纯使用su命令切换用户,当前的用户环境并没有发生变化
缺陷:使用su命令虽然很方便,但还是有很明显的缺陷,就是切换成其他用户的前提是需要知道对方的密码。如果需要切换成root,那就需要root的密码。root是系统中权限最高的用户,如果让太多人知道root密码,是很不安全的。为解决这个问题,我们可以使用sudo命令,只需要知道自己的密码就可以使用sudo执行任何命令,严格来说,sudo并不是真的切换了用户,而是使用其他用户的身份和权限执行了命令。
---工欲善其事,必先利其器