redis的概述:
1 2 3 4 5 6 7 |
redis持久化缓存服务还会周期性的把更新的数据写入到磁盘以及修改的操作记录追加到文件记录下来; redis还支持master-slaver(主从)同步,类似于mysql的主从同步; redis是开源的/使用C语言编写,可基于内存可持久化的日志性,并提供多种语言的API; redis提供了python、ruby、erlang、php客户端; |
redis的特点:
1 2 3 4 5 6 7 8 9 10 11 12 |
key-value键值类型存储; 支持数据可靠存储及落地; 单进程单线程高性能服务器; crash safe & recovery slow; 单机 qps 可以达到10W; 适合小数据量告诉读写访问; |
redis的优点:
1 2 3 4 5 6 7 8 9 10 |
持久化 数据类型丰富 redis的所有操作都是原子性的 时间的通知,key过期 支持主从复制 |
redis的缺陷:
1 2 3 4 5 6 7 |
系统运行有毛刺 不同命令延迟差别极大 内存管理开销大(设置redis不要使用内存的3/5) buffer io造成系统OOM |
redis的数据类型:
1 2 3 4 5 6 7 8 9 |
string字符串 Hash哈希表 List列表 Set 集合 Sorted set 有序集合 |
redis企业级应用场景:
1 2 3 4 5 6 7 8 9 10 |
redis最佳试用场景是全部数据in-memory; redis更多场景是memcached的替代品来试用; 数据比较重要,对数据一致性有一定的要求; 当需要除key-value之外更 多的数据类型支持时; 需要主从同步以及负载均衡分布式应用场景; |
下载源码包:
1 2 |
[root@redis01 ~]# cd /opt/ [root@redis01 /opt]# wget https://download.redis.io/releases/redis-6.0.9.tar.gz |
安装依赖
1 2 |
[root@redis01 /opt]# yum -y install centos-release-scl [root@redis01 /opt]# yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils |
解压
1 2 3 |
[root@redis01 /opt]# tar xf redis-6.0.9.tar.gz -C /usr/local/ [root@redis01 /opt]# cd /usr/local/redis-6.0.9/ [root@redis01 /usr/local/redis-6.0.9]# scl enable devtoolset-9 bash |
编译安装
1 |
[root@redis01 /usr/local/redis-6.0.9]# make && make install |
拷贝配置文件
1 2 |
[root@redis01 /usr/local/redis-6.0.9]# mkdir /usr/local/redis/etc/ [root@redis01 /usr/local/redis-6.0.9]# cp /usr/local/redis-6.0.9/redis.conf /usr/local/redis/etc/ |
配置system管理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[root@redis01 ~]# vim /usr/lib/systemd/system/redis.service [Unit] Description=Redis After=network.target [Service] Type=forking PIDFile=/var/run/redis_6379.pid ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target |
配置环境变量
1 2 |
[root@redis01 ~]# vim /etc/profile.d/redis.sh export PATH=/usr/local/redis/bin:$PATH |
启动 redis
1 2 3 4 5 6 |
[root@redis01 ~]# systemctl start redis # 或者 [root@redis01 ~]# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf |
关闭 redis
1 2 3 4 5 6 7 |
# 在redis里关闭 [root@redis01 ~]# redis-cli 127.0.0.1:6379> shutdown not connected> exit #在命令行 [root@redis01 ~]# systemctl stop redis |