Redis 简介
Redis是一个开源的高性能键值对数据库。
Redis数据库中的所有数据都存储在内存中。
Redis虽然是作为数据库开发的,但由于其提供了丰富的功能,越来越多的人将其用作缓存、队列系统等。
在性能上Redis是单线程模型,而Memcached支持多线程,所以在多和服务器上后者的性能更高一些。
Redis从它的许多竞争继承来的三个主要特点:
Redis数据库完全在内存中,使用磁盘仅用于持久性。
相比许多键值数据存储,Redis拥有一套较为丰富的数据类型。
Redis可以将数据复制到任意数量的从服务器。
Redis约定次版本号为偶数的版本是稳定版(如2.4,2.6),奇数版本是非稳定版(如2.5,2.7)。
Redis 安装过程
版本:redis-4.0.9.tar.gz
需要GCC依赖
#安装GCC yum install gcc
# 解压 [root@CentOs-clean redis-4.0.9]# tar -zxvf redis-4.0.9.tar.gz
# 编译 [root@CentOs-clean bin]# make MALLOC=libc
缺少 MALLOC=libc 会报错,参考
https://blog.csdn.net/bugall/article/details/45914867
# 安装 [root@CentOs-clean bin]# make install PREFIX=/usr/local/redis
修改配置文件 redis.conf
daemonize no #改为 yes 后台启动
bind * #绑定redis提供服务的IP
requirepass *** #访问密码
logfile "redis.log" #日志文件
进入redis安装目录/usr/local/redis/bin
# 启动Redis [root@CentOs-clean bin]# ./redis-server ../redis.conf 5775:C 29 Oct 16:26:05.683 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 5775:C 29 Oct 16:26:05.683 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=5775, just started 5775:C 29 Oct 16:26:05.683 # Configuration loaded
(redis.conf 文件自己根据需要复制到某处)
提示:不推荐使用root用户启动redis(阿里云安全检测提示)
使用root权限去运行网络服务是比较有风险的(nginx和apache都是有独立的work用户,而redis没有)。
redis crackit 漏洞就是利用root用户的权限来替换或者增加authorized_keys,来获取root登录权限的
useradd -s /sbin/nolog -M redis
sudo -u redis /<redis-server-path>/redis-server /<configpath>/redis.conf
关闭Redis服务, 进入redis安装文件src目录
# ./redis-cli SHUTDOWN
使用Redis客户端访问 redis服务
# 指定IP 和 端口 (不指定默认是本机 端口6379) [root@node src]# ./redis-cli -h 192.168.31.100 -p 6379 # 密码认证 [AUTH] 192.168.31.100:6379> AUTH 123456 OK # 选择数据库 [select],共16个,从0开始 192.168.31.100:6379> select 4 OK # 查看库大小 [dbsize] 192.168.31.100:6379[4]> dbsize (integer) 2 # 查看当前库下的key(支持匹配) [keys] 192.168.31.100:6379[4]> keys * 1) "goodsName" 2) "car1" # 判断数据类型 [type] 192.168.31.100:6379[4]> type goodsName string 192.168.31.100:6379[4]> type car1 hash # 退出,关闭链接 [quit] 192.168.31.100:6379[4]> quit
中文乱码在建立连接时 增加参数 --raw