一、介绍

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
Categories: 数据库

0 Comments

发表评论

Avatar placeholder

邮箱地址不会被公开。 必填项已用*标注