Redis教程(一)Redis 5 编译安装部署教程
一、Redis介绍
Redis是一种高性能、高可用、高可扩展,并且支持丰富的数据类型的缓存服务。从数据类型来说比仅支持字符串类型数据的Memcached支持更为丰富的数据类型,比如string、list、hash、set;从高可用来说Redis支持主从架构,在主从架构上还有sentinel哨兵模式和集群模式,可以实现主从故障自动转移,而且Redis支持数据持久化,可以把内存中的数据保存在磁盘中,真正的做到了高可用。从高性能来说,虽然Redis是基于单线程工作(单线程意味着Redis一次只能一条命令,所以需要避免在线上主库操作一些长命令,如keys、flushall\flushdb等),但是不代表它性能就很差,单线程并不是Redis的瓶颈所在,经过测试发现Redis平均每秒大概可以处理50W次并发请求,存储100万个small key其内存消耗也仅仅100M左右。Redis的应用场景主要包含了一些缓存系统、计数器、排行榜、消息队列、实时系统等,基本上社交媒体的功能都可以通过Redis实现,但是一些大容量的缓存服务使用Redis就会比较不合适,建议使用基于磁盘的MongoDB。
二、编译安装Redis
Redis下载的官方网站是http://redis.io/download/;所有历史版本页面:http://download.redis.io/releases/。下载好需要的安装包后解压并安装,该方法适用3.x至6.x
cd /usr/local/src/ wget https://download.redis.io/releases/redis-5.0.10.tar.gz tar zxf redis-5.0.10.tar.gz cd redis-5.0.10 yum install gcc jemalloc -y #Redis依赖C语言的环境,所以先安装gcc编译环境和jemalloc内存分配器,在处理内存碎片化上优于默认的内存分配器libc make make install #make的时候安装已经完成,make install会把redis命令放在/usr/local/bin下 # make MALLOC=/usr/lib64/libjemalloc.so.1 #如果报错没找到jemalloc文件可以这样手动指定,通过rpm -ql jemalloc可以查看so文件路径
三、服务器内核参数调整
1、调整内存分配策略,减少OOM
echo "vm.overcommit_memory=1" >> /etc/sysctl.conf sysctl vm.overcommit_memory=1
2、关闭THP,减少延迟
echo never > /sys/kernel/mm/transparent_hugepage/enabled #该命令执行后还需写入到/etc/rc.local
四、Redis配置
1、redis脚本介绍
· redis-server:Redis服务启动脚本
· redis-cli:Redis客户端命令行操作工具
· redis-benchmark:Redis压力测试工具,测试Redis在当前系统下的读写性能
redis-benchmark -c 100 -n 10000 -r 10000 #100个客户端总共发起10000个请求,并且随机生成大量key,否则只有几个key
· redis-check-aof:对aof数据文件检查修复工具
· redis-check-dump:检查导出工具
2、启动Redis服务
· 直接运行redis-server脚本可以使用默认参数来启动服务,但是启动服务后会有警告信息“Warning: no config file specified, using the default config. In order to specify a config file use ./redis-server /path/to/redis.conf”,这个是说明没有指定配置文件
redis-server
· 指定配置文件启动redis
redis-server /usr/local/redis/etc/redis.conf
· 指定配置文件并后台启动redis
vi /usr/local/redis/etc/redis.conf
daemonize yes #此项改为yes
5、使用客户端连接Redis测试,默认端口为6379,如果能正常连接上就代表一切成功了
6、登录Redis后输入help命令可以查看帮助,要详细查看指定类型数据的子命令有哪些,可以用@符号来指定组名,如“help @string”“help @list”。也可以用tab来自动补全
./redis-cli
127.0.0.1:6379>
7、关闭redis最好的方法是连接上客户端后运行shutdown,不建议直接kill
评论