一、介绍
Redis 是 C 语言开发的一个开源的(遵从 BSD 协议)高性能键值对(key-value)的内存数据库,可以用作数据库、缓存、消息中间件等。它是一种NoSql,性能优秀,数据在内存中,读写速度非常快,支持并发 10W QPS。单进程单线程,采用 IO 多路复用机制。丰富的数据类型,支持字符串(strings)、散列(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等。支持数据持久化。可以将内存中数据保存在磁盘中,重启时加载。主从复制,哨兵,集群高可用。
关系型数据库:mysql、oracle、postgresql
非关系型数据库:redis、mongo、es
非关系型数据库(not only sql)指的不同于传统的关系型数据库的数据库管理系统的统称。not only sql用于超大规模数据的存储。这些类型的数据不需要固定的存储模式,无需多余操作就可以横向扩展。
二、版本选择
2.x 非常老
3.x 主流
4.x 混合持久化
5.x 增加了流处理类型
三、安装部署
[root@db1 ~]# mkdir /data/soft -p
[root@db1 ~]# cd /data/soft/
[root@db1 soft]# wget http://download.redis.io/releases/redis-5.0.7.tar.gz
[root@db1 soft]# tar zxf redis-5.0.7.tar.gz -C /opt/
[root@db1 soft]# cd /opt
[root@db1 opt]# ln -s /opt/redis-5.0.7 /opt/redis
[root@db1 opt]# cd /opt/redis
[root@db1 redis]# make
[root@db1 redis]# make install
四、编写主配置文件
[root@db1 redis]# mkdir -p /opt/redis_6379/{conf,logs,pid}
[root@db1 redis]# mkdir -p /data/redis_6379
[root@db1 redis]# cat >/opt/redis_6379/conf/redis_6379.conf<<EOF
daemonize yes
bind 127.0.0.1 10.0.0.51
port 6379
pidfile /opt/redis_6379/pid/redis_6379.pid
logfile /opt/redis_6379/logs/redis_6379.log
EOF
五、启动
[root@db1 redis]# redis-server /opt/redis_6379/conf/redis_6379.conf
六、检查
[root@db1 redis]# ps -ef|grep redis
redis 6968 1 0 08:43 ? 00:00:03 /usr/local/bin/redis-server 127.0.0.1:6379
root 8511 8046 0 09:08 pts/0 00:00:00 grep --color=auto redis
七、写入system启动管理
[root@db1 redis]# redis-cli shutdown
[root@db1 redis]# groupadd redis -g 1000
[root@db1 redis]# useradd redis -u 1000 -g 1000 -M -s /sbin/nologin
[root@db1 redis]# chown -R redis:redis /opt/redis*
[root@db1 redis]# chown -R redis:redis /data/redis*
[root@db1 redis]# cat >/usr/lib/systemd/system/redis.service<<EOF
[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/local/bin/redis-server /opt/redis_6379/conf/redis_6379.conf
--supervised systemd
ExecStop=/usr/local/bin/redis-cli shutdown
Type=notify
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl start redis
八、进入redis
[root@db1 redis]# redis-cli
127.0.0.1:6379>
九、关闭redis
127.0.0.1:6379> SHUTDOWN
not connected>
[root@db1 redis]# redis-cli shutdown
[root@db1 redis]# kill redis
[root@db1 redis]# pkill redis
十、警告优化
1)maximum open files过低
[root@db1 redis]# vim /usr/lib/systemd/system/redis.service
[Service]
..............
LimitNOFILE=65536
2)overcommit_memory设置
[root@db1 redis]# sysctl vm.overcommit_memory=1
3)关闭THP⼤内存⻚
[root@db1 redis]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
4)/proc/sys/net/core/somaxconn is set to the lower
value of 128.
[root@db1 redis]# echo "1024" > /proc/sys/net/core/somaxconn
[root@db1 redis]# cat /proc/sys/net/core/somaxconn
1024
0 Comments