共计 2993 个字符,预计需要花费 8 分钟才能阅读完成。
由于工作的缘故,开发的同事需要在 CentOS 7 使用 Redis 来做缓存。
一、Redis 的基本介绍:
Redis 是一个 key-value 存储系统。和 Memcached 类似,它支持存储的 value 类型相对更多,包括 string(字符串)、list(链表)、set(集合)、zset(sorted set – 有序集合)和 hash(哈希类型)。这些数据类型都支持 push/pop、add/remove 及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis 支持各种不同方式的排序。与 memcached 一样,为了保证效率,数据都是缓存在内存中。区别的是 redis 会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了 master-slave(主从)同步。
Redis 是一个高性能的 key-value 数据库。redis 的出现,很大程度补偿了 memcached 这类 key/value 存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了 Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang 等客户端,使用很方便。[1]
Redis 支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得 Redis 可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布 / 订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。
二、Redis 的安装:
#/bin/bash
yum install gcc tcl jemalloc-devel -y
cd /tmp
wget http://download.redis.io/releases/redis-3.2.4.tar.gz
tar zxvf redis-3.2.4.tar.gz
cd redis-3.2.4/
make
#make test
taskset -c 0 make test
make install
cp redis.conf /etc
sed -i “s%daemonize no%daemonize yes%g” /etc/redis.conf
echo “[Unit]
Description=Redis
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/bin/redis-server /etc/redis.conf
ExecStop=/usr/local/bin/redis-cli -p 6397 shutdown
[Install]
WantedBy=multi-user.target
“>>/usr/lib/systemd/system/redis.service
systemctl enable redis
systemctl start redis
systemctl status redis
本部分需要注意的部分:
由于是虚拟机并且只有 1 个核所以 taskset -c 只能用 0
cat /proc/cpuinfo |grep process|wc -l 可以查看自己的核心数
daemonize yes 把 no 改成 yes,默认在后台程序方式运行
生成系统命令,以及设置开机启动,启动 redis,最后查看一下 resis 的状态。
三、配置文件部分
自己感触最深的部分是:bind,由于自己以前的知识以为 bind 是绑定的服务器的地址,所以感觉 bind 127.0.0.1 是可以的。其实在这里跟之前的 listen 是差不多是一个道理,在这里这个 bind 差不多是监听的意思,bind 后面跟的 IP 地址可以使用 redis 其他的 IP 不可以,但是在 bind 127.0.0.1 注释以后是监听所有的 IP。
如果是多内网 IP 可以使用 bind 192.168.1.2 192.168.1.3 用空格间隔
也可以用两行 bind 192.168.1.2
bind 192.168.1.3
在注释掉 bind 127.0.0.1 以后其他配置不做修改,所有 IP 的都可以连接使用 redis,但是使用过程中会出现这个提示:
大体意思就是 redis 运行在保护模式下,并且没有指定绑定的 IP 地址,客户端也不需要认证的密码,在这种情况下只允许 lookback(127.0.0.1)连接。为了解决这个问题给出了 4 种解决方式:
1>、#redis-cli 登陆以后 使用 CONFIG SET protected-mode no,暂时关闭保护模式。使用 ”CONFIG REWRITE” 使此配置永久生效。
2>、可以修改配置文件,可以使用下面语句,并且重启 redis 服务。
sed -i “s/protected-mode yes/protected-mode no/g” /etc/redis.conf
3>、如果仅是测试使用可以在启动的时候加上 –protected-mode no
4>、就是 要么绑定 IP 地址,要么设置一个密码,密码设置方式如下:修改配置文件
requirepass 123456
如果使用密码在登陆的需要指定密码
redis-cli -h 192.168.1.203 -p 6379 -a 123456
到此实验基本成功,过程中遇到的问题也一步步解决。come on, boy!!
下面关于 Redis 的文章您也可能喜欢,不妨参考下:
Ubuntu 14.04 下 Redis 安装及简单测试 http://www.linuxidc.com/Linux/2014-05/101544.htm
Redis 主从复制基本配置 http://www.linuxidc.com/Linux/2015-03/115610.htm
Redis 集群明细文档 http://www.linuxidc.com/Linux/2013-09/90118.htm
Ubuntu 14.04 安装 Redis 与简单配置 http://www.linuxidc.com/Linux/2017-01/139075.htm
Ubuntu 16.04 环境中安装 PHP7.0 Redis 扩展 http://www.linuxidc.com/Linux/2016-09/135631.htm
CentOS 7.0 安装 Redis 3.2.1 详细过程和使用常见问题 http://www.linuxidc.com/Linux/2016-09/135071.htm
Ubuntu 16.04 环境中安装 PHP7.0 Redis 扩展 http://www.linuxidc.com/Linux/2016-09/135631.htm
Ubuntu 15.10 下 Redis 集群部署文档 http://www.linuxidc.com/Linux/2016-06/132340.htm
Redis 实战 中文 PDF http://www.linuxidc.com/Linux/2016-04/129932.htm
Redis 的详细介绍:请点这里
Redis 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-02/140363.htm