怎么连接在centos7上安装redis 上的redis

用户名:k.all-black
文章数:17
访问量:1706
注册日期:
阅读量:1297
阅读量:3317
阅读量:461087
阅读量:1145601
51CTO推荐博文
一.安装Redis1.先安装tclyum&-y&install&tcl2.再安装Redis,按照官网()给的安装方法wget&http://download.redis.io/releases/redis-3.0.7.tar.gz
tar&xzf&redis-3.0.7.tar.gz&
cd&redis-3.0.7
make3.安装完后,会提示你最好make test一下make&test4.测试是否安装成功src/redis-server&#开启一个服务器端&另开一个shell,启动客户端连接服务端src/redis-cli
redis&&set&foo&bar
redis&&get&foo
"bar"5.为方便在任何路径下启动服务端或客户端。执行make install,会将make编译生成的可执行文件拷贝到/usr/local/bin目录下make&install二.安装Hiredis1.下载编译并安装Hiredis,下载路径根据github上的版本来定wget&/redis/hiredis/archive/v0.13.3.tar.gz
tar&xzf&&v0.13.3.tar.gz
cd&hiredis-0.13.3/
make&install2.添加环境变量。因程序运行时,会用到libhiredis.so.0.13这个动态库,所以需要把它的路径加到环境变量里vi&~/.bash_profile&&#用vi打开当前用户的bash_profile
export&LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib&&#在最后一行添加------------------------------------------------------------------------------------------PS:1.redis加载lua脚本方法先编写好脚本文件,比如:test.lua,再执行下面命令加载redis-cli&script&load&"$(cat&test.lua)"&#注意这个命令不能将redis-cli和script&load&"$(cat&test.lua)"分开成两条命令执行
了这篇文章
类别:┆阅读(0)┆评论(0)Redis Sentinel 安装 自启动 Spring连接配置 Centos7
server:192.168.0.117 redis:3.2.3 os: centos 7 安装目录默认: /usr/local PREFIX=/usr/local 一主一从,2个哨兵 一、解压安装包 1. cd /usr/loca/src 2. 复制下载好的 redis-3.2.3.tar.gz到 /usr/loca/src 3. tar -xvzf
server:192.168.0.117
redis:3.2.3
os: centos 7
安装目录默认: /usr/local &PREFIX=/usr/local
一主一从,2个哨兵
一、解压安装包
& & 1. cd /usr/loca/src
& & 2. 复制下载好的 redis-3.2.3.tar.gz到 /usr/loca/src
& & 3. tar -xvzf redis-3.2.3.tar.gz -C /usr/local/
& & 4. cd /usr/local/redis-3.2.3
& & 5. make MALLOC=libc &install
二、分别 配置2个redis 和 两个 sentinel配置(这里都安装在一台机器上,实际至少应分别安装在2台机器上)
& & 1. cd /usr/local/redis-3.2.3
& & 2. cp redis.conf redis-7501.conf & & & &(主)
& & 3. cp redis.conf redis-7502.conf & & & &(备)
& & 4. cp sentinel.conf sentinel-26378.conf&
& & 5. cp sentinel.conf sentinel-26379.conf&
& & 6. 创建数据和日志存放目录()
& & & & mkdir -pv &/data/redis/logs
三、修改配置内容如下
& &1. redis-7501.conf
& & & &daemonize yes
& & & &port 7501
& & & &bind 192.168.0.117
& & & &protected-mode no
& & & &pidfile /var/run/redis_7501.pid
& & & &logfile &/data/redis/logs/redis-7501.log&
& & & &dir /data/redis/
& & & &dbfilename dump-7501.rdb
& & & &appendfilename &appendonly-7501.aof&
& &2. &redis-7502.conf
& & & & 同上,修改所有,然后再加上
& & & & slaveof 192.168.0.117 7501
& &3. sentinel-26378.conf
& & & &port 26378
& & & &protected-mode no
& & & &pidfile /var/run/sentinel_26378.pid
& & & &sentinel monitor mymaster 192.168.0.117 &7501 &2
& & & &sentinel down-after-milliseconds mymaster 5000
& & & &sentinel parallel-syncs mymaster 1
& & & &dir &/data/redis/&
& & & &logfile &/data/redis/logs/sentinel_26378.log&
& & & &daemonize yes
& &4. sentinel-26379.conf
& & & &port 26379
& & & &protected-mode no
& & & pidfile /var/run/sentinel_26379.pid
& & & sentinel monitor mymaster 192.168.0.117 &7501 &2 & & & & & & & &(注意这句定义了master的名字,后面2个配置必须在它后面)
& & & &sentinel down-after-milliseconds mymaster 5000 & & & & & & & & & (5秒master没有响应就认为主观下线默认是30s)
& & & &sentinel parallel-syncs mymaster 1
& & & &dir &/data/redis/&
& & & &logfile &/data/redis/logs/sentinel_26379.log&
& & & &daemonize yes
& & 1. cd /usr/local/redis-3.2.3
& & 2. redis-server redis-7501.conf &&
& & 3. redis-server redis-7502.conf &&
& & 4. redis-sentinel sentinel-26378.conf &&
& & 5. redis-sentinel sentinel-26379.conf &&
五、检查服务配置
& &1. 登录哨兵redis
& & & redis-cli -h 192.168.0.117 -p 26378
& &2. 查看主服务信息
& & SENTINEL masters
& &3. 查看从服务信息
& & SENTINEL slaves mymaster
& &4. 写入master一条测试key
& & &redis-cli -h 192.168.0.117 -p 7501
& & &set test test
& 5. 从服务器get测试key &
& & & redis-cli -h 192.168.0.117 -p 7502
& & & get test
六、主从切换测试
& 1. kill 掉7501的进程
& 2. 登录哨兵redis查看主服务器是否变化
七、配置redis服务自启动
& & &这里只演示一个redis服务和一个哨兵服务(实际应该是2太机器上,都有这么一组)
& & &1. &vi & /usr/lib/systemd/system/redis7501.service
Description=redis - High performance k-v cache
Documentation=http://redis.io/documentation
After=network.target remote-fs.target nss-lookup.target
Type=forking
PIDFile=/var/run/redis_7501.pid
ExecStart=/usr/local/bin/redis-server /usr/local/redis-3.2.3/redis-7501.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
WantedBy=multi-user.target
& & 2. 添加开机自启动
& & & & systemctl enable redis7501.service
& & 3. vi & /usr/lib/systemd/system/sentinel26378.service
Description=redis-sentinel - High performance k-v cache's sentinel module
Documentation=http://redis.io/documentation
After=network.target remote-fs.target nss-lookup.target
Type=forking
PIDFile=/var/run/sentinel_26379.pid
ExecStart=/usr/local/bin/redis-sentinel /usr/local/redis-3.2.3/sentinel-26378.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
WantedBy=multi-user.target
& 4. 添加开机自启动
& & & systemctl enable sentinel26378.service
八、客户端连接spring配置修改及测试
& &1. Spring Jedis 连接配置
&bean id=&sentinelConfiguration&
class=&org.springframework.data.redis.connection.RedisSentinelConfiguration&&
&property name=&master&&
&bean class=&org.springframework.data.redis.connection.RedisNode&&
&property name=&name& value=&mymaster&&&/property&
&/property&
&property name=&sentinels&&
&bean class=&org.springframework.data.redis.connection.RedisNode&&
&constructor-arg name=&host& value=&192.168.0.117&&&/constructor-arg&
&constructor-arg name=&port& value=&26378&&&/constructor-arg&
&bean class=&org.springframework.data.redis.connection.RedisNode&&
&constructor-arg name=&host& value=&192.168.0.117&&&/constructor-arg&
&constructor-arg name=&port& value=&26379&&&/constructor-arg&
&/property&
&bean id=&jedisConnectionFactory&
class=&org.springframework.data.redis.connection.jedis.JedisConnectionFactory&&
&constructor-arg name=&sentinelConfig& ref=&sentinelConfiguration&&&/constructor-arg&
&constructor-arg name=&poolConfig& ref=&poolConfig&&&/constructor-arg&
&bean id=&redisTemplate& class=&org.springframework.data.redis.core.StringRedisTemplate&&
&property name=&connectionFactory& ref=&jedisConnectionFactory& /&
&!--&property name=&keySerializer&&
&bean class=&com.kingsum.bigdata.collector.cache.redis.RedisKeySerializer& /&
&/property&
&property name=&valueSerializer&&
class=&com.kingsum.bigdata.collector.cache.redis.RedisValueSerializer& /&
&/property&--&
&bean id=&poolConfig& class=&redis.clients.jedis.JedisPoolConfig&
lazy-init=&true&&
&property name=&maxIdle& value=&${redis.maxIdle}& /&
&property name=&maxTotal& value=&${redis.maxActive}& /&
&property name=&maxWaitMillis& value=&${redis.maxWait}& /&
2. 测试连接性
3. kill 掉当前的master 7502
& & 可以看到,连接自动切换到7501,但是中间大概有间隔10s左右,会仍然访问7501。
(责任编辑:最模板)
------分隔线----------------------------
背景: 最近由于工作需要(开始研究openstack,docker等),在经历了...
将nginx部署到log.io前端后发现功能虽然正常,但控制台有错误记...
System Requirements: CentOS 6.6, 2G内存 参考:/docs/i...
对新做的网站进行了rewrite,结果rewrite之前的网址还是被百度收...
实际这是很简单的,小心跟着以下的步骤做: 在http://www.apache...
CopyRight (C)
最模板 , 深圳奇好科技有限公司 All Rights Reserved.CentOS 7下安装 redis 3.0.6并配置集群的过程详解
作者:不争
字体:[ ] 类型:转载 时间:
这篇文章主要给大家介绍了CentOS 7下安装 redis 3.0.6并配置集群的过程,文中通过示例代码和详细的步骤介绍的很相信,对大家具有一定的参考价值,有需要的朋友们下面来一起看看吧。
[root@centos7-1 ~]# yum -y install gcc openssl-devel libyaml-devel libffi-devel readline-devel zlib-devel gdbm-devel ncurses-devel gcc-c++ automake autoconf
安装 redis
[root@centos7-1 ~]# wget http://download.redis.io/releases/redis-3.0.6.tar.gz
[root@centos7-1 ~]# tar xvf redis-3.0.6.tar.gz
[root@centos7-1 ~]# cd redis-3.0.6/
[root@centos7-1 redis-3.0.6]# make MALLOC=libc
[root@centos7-1 redis-3.0.6]# make install
启动 server
通过命令 redis-server 来启动 redis server。通过下面的输出信息可以看出这次启动并没有指定配置文件,可以使用命令 redis-server /path/to/redis.conf 来指定具体的配置文件启动。
[root@centos7-1 redis-3.0.6]# redis-server
4435:C 25 Jan 11:40:48.816 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
4435:M 25 Jan 11:40:48.817 * Increased maximum number of open files to 10032 (it was originally set to 1024).
_.-``__ ''-._
_.-`` `. `_. ''-._
Redis 3.0.6 () 64 bit
.-`` .-```. ```\/ _.,_ ''-._
.-` | `, )
Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'|
Port: 6379
| `-._ `._ /
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._
_.-'_.-' |
http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._
_.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
4435:M 25 Jan 11:40:48.817 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
4435:M 25 Jan 11:40:48.817 # Server started, Redis version 3.0.6
4435:M 25 Jan 11:40:48.817 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
4435:M 25 Jan 11:40:48.817 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never & /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
4435:M 25 Jan 11:40:48.817 * DB loaded from disk: 0.000 seconds
4435:M 25 Jan 11:40:48.817 * The server is now ready to accept connections on port 6379
到此,单节点的 Redis server 已经安装完毕,以下进入配置和安装集群的过程。
创建集群中的6个节点
集群配置文件
集群相关的配置文件主要修改 redis.conf 中的一下几个地方,因为都部署在一个服务器上,每个节点的端口不同。
[root@centos7-1 redis-3.0.6]$ vi redis.conf
#修改以下地方
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-node-timeout 5000
appendonly yes
每个节点的配置文件
创建6个文件夹,分别表示一个 redis 节点,文件夹使用 redis 节点的端口号命名,文件里存放每个节点的配置文件。
[root@centos7-1 redis-3.0.6]# mkdir /usr/local/redis-cluster
[root@centos7-1 redis-3.0.6]# cd /usr/local/redis-cluster
[root@centos7-1 redis-cluster]# mkdir 02 05
拷贝 redis.conf 拷贝到6个文件夹中
[root@centos7-1 redis-cluster]# cp ~/redis-3.0.6/redis.conf 7000
[root@centos7-1 redis-cluster]# cp ~/redis-3.0.6/redis.conf 7001
[root@centos7-1 redis-cluster]# cp ~/redis-3.0.6/redis.conf 7002
[root@centos7-1 redis-cluster]# cp ~/redis-3.0.6/redis.conf 7003
[root@centos7-1 redis-cluster]# cp ~/redis-3.0.6/redis.conf 7004
[root@centos7-1 redis-cluster]# cp ~/redis-3.0.6/redis.conf 7005
并修改每个配置中的内容为各自节点的端口,注意 port 和 cluster-config-file 的值必须唯一。
分别启动每个节点
[root@centos7-1 ~]# redis-server /usr/local/redis-cluster/7000/redis.conf
[root@centos7-1 ~]# redis-server /usr/local/redis-cluster/7001/redis.conf
[root@centos7-1 ~]# redis-server /usr/local/redis-cluster/7002/redis.conf
[root@centos7-1 ~]# redis-server /usr/local/redis-cluster/7003/redis.conf
[root@centos7-1 ~]# redis-server /usr/local/redis-cluster/7004/redis.conf
[root@centos7-1 ~]# redis-server /usr/local/redis-cluster/7005/redis.conf
启动完成后查看进程
[root@centos7-1 ~]# ps -ef | grep redis
12:12 pts/0 00:00:07 redis-server *:7000 [cluster]
12:12 pts/1 00:00:07 redis-server *:7001 [cluster]
12:12 pts/2 00:00:07 redis-server *:7002 [cluster]
12:12 pts/3 00:00:07 redis-server *:7003 [cluster]
12:12 pts/4 00:00:07 redis-server *:7004 [cluster]
12:13 pts/5 00:00:07 redis-server *:7005 [cluster]
14:08 pts/6 00:00:00 grep --color=auto redis
建立 Redis 集群
上面的步骤分别创建了6个节点,并已经启动,这里要把这6个节点加入到一个集群里面。redis 已经为我们提供了集群操作的脚本 redis-trib.rb , 操作起来很简单, 继续。
由于集群操作需要用到 ruby 脚本 redis-trib.rb , 所以要安装 ruby 和 rubygems
[root@centos7-1 ~]# yum -y install ruby rubygems
[root@centos7-1 ~]# gem install redis --version 3.0.6
Fetching: redis-3.0.6.gem (100%)
Successfully installed redis-3.0.6
Parsing documentation for redis-3.0.6
Installing ri documentation for redis-3.0.6
1 gem installed
redis-trib.rb 是一个 ruby 脚本工具,用来建立和管理 redis 集群,因为使用比较频繁,所以拷贝脚本 redis-trib.rb 到 /usr/local/bin/
[root@centos7-1 redis-3.0.6]$ cp src/redis-trib.rb /usr/local/bin/
[root@centos7-1 ~]# redis-trib.rb create --replicas 1 127.0.0.1:.0.1:.0.1:.0.1:.0.1:.0.1:7005
&&& Creating cluster
&&& Performing hash slots allocation on 6 nodes...
Using 3 masters:
127.0.0.1:7000
127.0.0.1:7001
127.0.0.1:7002
Adding replica 127.0.0.1:7003 to 127.0.0.1:7000
Adding replica 127.0.0.1:7004 to 127.0.0.1:7001
Adding replica 127.0.0.1:7005 to 127.0.0.1:7002
M: d900df95bdbd68ca0bc 127.0.0.1:7000
slots:0- slots) master
M: bcc89a3b78fa34f6a91d5 127.0.0.1:7001
slots: (5462 slots) master
M: 6dc5ee101cd934d54a6a3565116bbff 127.0.0.1:7002
slots: (5461 slots) master
S: d18e50ac6aff2f612fac43da74a7 127.0.0.1:7003
replicates d900df95bdbd68ca0bc
S: 85febaefeca3dbe3c78c92f2f76ead 127.0.0.1:7004
replicates bcc89a3b78fa34f6a91d5
S: 89d792acda7f2c99c95b0dcf9edc67 127.0.0.1:7005
replicates 6dc5ee101cd934d54a6a3565116bbff
Can I set the above configuration? (type 'yes' to accept): yes
&&& Nodes configuration updated
&&& Assign a different config epoch to each node
&&& Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join..
&&& Performing Cluster Check (using node 127.0.0.1:7000)
M: d900df95bdbd68ca0bc 127.0.0.1:7000
slots:0- slots) master
M: bcc89a3b78fa34f6a91d5 127.0.0.1:7001
slots: (5462 slots) master
M: 6dc5ee101cd934d54a6a3565116bbff 127.0.0.1:7002
slots: (5461 slots) master
M: d18e50ac6aff2f612fac43da74a7 127.0.0.1:7003
slots: (0 slots) master
replicates d900df95bdbd68ca0bc
M: 85febaefeca3dbe3c78c92f2f76ead 127.0.0.1:7004
slots: (0 slots) master
replicates bcc89a3b78fa34f6a91d5
M: 89d792acda7f2c99c95b0dcf9edc67 127.0.0.1:7005
slots: (0 slots) master
replicates 6dc5ee101cd934d54a6a3565116bbff
[OK] All nodes agree about slots configuration.
&&& Check for open slots...
&&& Check slots coverage...
[OK] All 16384 slots covered.
以上 create 命令创建了集群,选项 –replicas 1 表示每个 Master 都需要一个 Slave。所以结果是集群中创建了3个 Master 节点 和 3个 Slave 节点。
上面信息中 M 表示 Master 节点, S 表示 Slave 节点。
由此可以看出三组 Master 和 Slave 关系如下:
M: d900df95bdbd68ca0bc -& S: d18e50ac6aff2f612fac43da74a7
M: 6dc5ee101cd934d54a6a3565116bbff -& S: 89d792acda7f2c99c95b0dcf9edc67
M: bcc89a3b78fa34f6a91d5 -& S: 85febaefeca3dbe3c78c92f2f76ead
检测集群的状态
[root@centos7-1 ~]# redis-trib.rb check 127.0.0.1:7000
&&& Performing Cluster Check (using node 127.0.0.1:7000)
M: d900df95bdbd68ca0bc 127.0.0.1:7000
slots:0- slots) master
1 additional replica(s)
M: 6dc5ee101cd934d54a6a3565116bbff 127.0.0.1:7002
slots: (5461 slots) master
1 additional replica(s)
S: 89d792acda7f2c99c95b0dcf9edc67 127.0.0.1:7005
slots: (0 slots) slave
replicates 6dc5ee101cd934d54a6a3565116bbff
S: d18e50ac6aff2f612fac43da74a7 127.0.0.1:7003
slots: (0 slots) slave
replicates d900df95bdbd68ca0bc
S: 85febaefeca3dbe3c78c92f2f76ead 127.0.0.1:7004
slots: (0 slots) slave
replicates bcc89a3b78fa34f6a91d5
M: bcc89a3b78fa34f6a91d5 127.0.0.1:7001
slots: (5462 slots) master
1 additional replica(s)
[OK] All nodes agree about slots configuration.
&&& Check for open slots...
&&& Check slots coverage...
[OK] All 16384 slots covered.
利用 redis-cli -c -p 端口号 连接集群
[root@centos7-1 ~]# redis-cli -c -p 7000
127.0.0.1:7000& get hello
127.0.0.1:7000& set hello "hello world"
127.0.0.1:7000& get hello
"hello world"
127.0.0.1:7000& get name
-& Redirected to slot [5798] located at 127.0.0.1:7001
127.0.0.1:7001& set name "redis server"
127.0.0.1:7001& get name
"redis server"
上就是关于在CentOS 7系统下安装redis 3.0.6并配置集群的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具centos7安装redis访问全过程详解
centos7安装redis访问全过程详解
雷布斯说互联网
安装之前,先来说一下前期准备工作,要不然安装的时候回报错的。一旦make的时候出错,执行一下makedistclean然后重新编辑即可一、前期准备1、安装gccyum-yinstallgccgcc-c++2、安装wget(也可以提前下载好压缩包,这一步可以省略)yum-yinstallwget3、安装ActiveTcl,redis需要ActiveTcl支持yum-yinstalltcl二、安装redis1、提前下载压缩包或者wegt安装wegthttp://download.redis.io/releases/redis-3.2.8.tar.gz2、解压缩tar-zxvfredis-3.2.8.tar.gz3、进入redis目录cdredis-3.2.84、执行make编译Redis,如果前期工作做了的话,是不会出错的。make5、之后一切正常,说明安装成功了,之后就是要做一项配置redis-3.2.8/redis.conf里:daemonizeno修改为→daemonizeyes6、启动redis,出现下面的画面说明安装成功了三、访问注意事项:1、开放防火墙端口6379,因为redis的默认端口是63792、连接redis访问,这里需要重新打开一个窗口,第一个窗口启动着服务,这里做了一个简单的set操作,具体的操作大家可以上网查询,这里不做赘述。总结,安装过程还是很简单的,前期工作做好就行后续内容持续更新,如果你也在学习技术,或者你想要成为全栈工程师,可以关注一下下哈。不定期更新java、框架、centos7等内容,让你从代码、框架、linux、人工智能做一个全面了解。O(∩_∩)O因为每天只能发送一篇文章,所以很多介绍需要后期继续推送,后期的主要介绍的是:java实现人脸登录例子、mongo数据库,spring集成redis、mongo、elasticsearch等等,喜欢的朋友可以关注我噢。最后来一张美女福利图。O(∩_∩)O~
本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。
雷布斯说互联网
百家号 最近更新:
简介: 分享最新的数字信息
作者最新文章您所在的位置: &
如何在CentOS 7上安装Redis服务器
如何在CentOS 7上安装Redis服务器
Carlos Alberto
Redis是一个开源的多平台数据存储软件,使用ANSI C编写,直接在内存使用数据集,这使得它得以实现非常高的效率。Redis支持多种编程语言,包括Lua,C,Java,Python,Perl,PHP和其他很多语言。Redis的代码量很小,只有约3万行,它只做“很少”的事,但是做的很好。本文介绍如何在CentOS 7上安装它。
大家好,本文的主题是 Redis,我们将要在 CentOS 7
上安装它。编译源代码,安装二进制文件,创建、安装文件。在安装了它的组件之后,我们还会配置 redis ,就像配置操作系统参数一样,目标就是让 redis
运行的更加可靠和快速。
Redis 服务器
Redis 是一个开源的多平台数据存储软件,使用 ANSI C 编写,直接在内存使用数据集,这使得它得以实现非常高的效率。Redis
支持多种编程语言,包括 Lua, C, Java, Python, Perl, PHP 和其他很多语言。redis
的代码量很小,只有约3万行,它只做&很少&的事,但是做的很好。尽管是在内存里工作,但是数据持久化的保存还是有的,而redis
的可靠性就很高,同时也支持集群,这些可以很好的保证你的数据安全。
构建 Redis
redis 目前没有官方 RPM 安装包,我们需要从源代码编译,而为了要编译就需要安装 Make 和 GCC。
如果没有安装过 GCC 和 Make,那么就使用 yum 安装。
yum&install&gcc&make&
从官网下载 tar 压缩包。
curl&http://download.redis.io/releases/redis-3.0.4.tar.gz&-o&redis-3.0.4.tar.gz&
tar&zxvf&redis-3.0.4.tar.gz&
进入解压后的目录。
cd&redis-3.0.4&
使用Make 编译源文件。
进入源文件的目录。
复制 Redis 的服务器和客户端到 /usr/local/bin。
cp&redis-server&redis-cli&/usr/local/bin&
最好也把 sentinel,benchmark 和 check 复制过去。
cp&redis-sentinel&redis-benchmark&redis-check-aof&redis-check-dump&/usr/local/bin&
创建redis 配置文件夹。
mkdir&/etc/redis&
在/var/lib/redis 下创建有效的保存数据的目录。
mkdir&-p&/var/lib/redis/6379&
为了让 redis 正常工作需要配置一些内核参数。
配置 vm.overcommit_memory 为1,这可以避免数据被截断,详情。
sysctl&-w&vm.overcommit_memory=1&
修改 backlog 连接数的最大值超过 redis.conf 中的 tcp-backlog 值,即默认值511。你可以在
找到更多有关基于 sysctl 的 ip 网络隧道的信息。
sysctl&-w&net.core.somaxconn=512&
取消对透明巨页内存(transparent huge pages)的支持,因为这会造成 redis 使用过程产生延时和内存访问问题。
echo&never&&&/sys/kernel/mm/transparent_hugepage/enabled&
redis.conf
redis.conf 是 redis 的配置文件,然而你会看到这个文件的名字是 6379.conf ,而这个数字就是 redis
监听的网络端口。如果你想要运行超过一个的 redis 实例,推荐用这样的名字。
复制示例的 redis.conf 到 /etc/redis/6379.conf。
echo&never&&&/sys/kernel/mm/transparent_hugepage/enabled&
现在编辑这个文件并且配置参数。
vi&/etc/redis/6379.conf&
设置 daemonize 为 no,systemd 需要它运行在前台,否则 redis 会突然挂掉。
vi&/etc/redis/6379.conf&
设置 pidfile 为 /var/run/redis_6379.pid。
vi&/etc/redis/6379.conf&
如果不准备用默认端口,可以修改。
port&6379&
设置日志级别。
port&6379&
修改日志文件路径。
logfile&/var/log/redis_6379.log&
设置目录为 /var/lib/redis/6379
dir&/var/lib/redis/6379&
下面有几个可以提高安全性的操作。
Unix sockets
在很多情况下,客户端程序和服务器端程序运行在同一个机器上,所以不需要监听网络上的 socket。如果这和你的使用情况类似,你就可以使用 unix
socket 替代网络 socket,为此你需要配置 port 为0,然后配置下面的选项来启用 unix socket。
设置 unix socket 的套接字文件。
unixsocket&/tmp/redis.sock&
限制 socket 文件的权限。
unixsocketperm&700&
现在为了让 redis-cli 可以访问,应该使用 -s 参数指向该 socket 文件。
redis-cli&-s&/tmp/redis.sock&
requirepass
你可能需要远程访问,如果是,那么你应该设置密码,这样子每次操作之前要求输入密码。
requirepass&&bTFBx1NYYWRMTUEyNHhsCg&&
rename-command
想象一下如下指令的输出。是的,这会输出服务器的配置,所以你应该在任何可能的情况下拒绝这种访问。
CONFIG&GET&*&
为了限制甚至禁止这条或者其他指令,可以使用 rename-command
命令。你必须提供一个命令名和替代的名字。要禁止的话,需要设置替代的名字为空字符串,这样禁止任何人猜测命令的名字会比较安全。
rename-command&FLUSHDB&&FLUSHDB_MY_SALT_G0ES_HERE09u09u&&rename-command&FLUSHALL&&&&rename-command&CONFIG&&CONFIG_MY_S4LT_GO3S_HERE09u09u&&
使用密码通过 unix socket 访问,和修改命令
默认情况下,redis 会周期性的将数据集转储到我们设置的目录下的 dump.rdb 文件。你可以使用 save
命令配置转储的频率,它的第一个参数是以秒为单位的时间帧,第二个参数是在数据文件上进行修改的数量。
每隔15分钟并且最少修改过一次键。
save&900&1&
每隔5分钟并且最少修改过10次键。
save&300&10&
每隔1分钟并且最少修改过10000次键。
save&60&10000&
文件 /var/lib/redis/6379/dump.rdb
包含了从上次保存以来内存里数据集的转储数据。因为它先创建临时文件,然后替换之前的转储文件,这里不存在数据破坏的问题,你不用担心,可以直接复制这个文件。
开机时启动
你可以使用 systemd 将 redis 添加到系统开机启动列表。
复制示例的 init_script 文件到 /etc/init.d,注意脚本名所代表的端口号。
cp&utils/redis_init_script&/etc/init.d/redis_6379&
现在我们要使用 systemd,所以在 /etc/systems/system 下创建一个单位文件名字为
redis_6379.service。
vi&/etc/systemd/system/redis_6379.service&
填写下面的内容,详情可见 systemd.service。
[Unit]&Description=Redis&on&port&6379&&[Service]&Type=forking&ExecStart=/etc/init.d/redis_6379&start&ExecStop=/etc/init.d/redis_6379&stop&&[Install]&WantedBy=multi-user.target&
现在,添加我之前在 /etc/sysctl.conf 里面修改过的内存过量使用和 backlog 最大值的选项。
vm.overcommit_memory&=&1&&net.core.somaxconn=512&
对于透明巨页内存支持,并没有直接 sysctl 命令可以控制,所以需要将下面的命令放到 /etc/rc.local 的结尾。
echo&never&&&/sys/kernel/mm/transparent_hugepage/enabled&
这样就可以启动了,通过设置这些选项你就可以部署 redis 服务到很多简单的场景,然而在 redis.conf 还有很多为复杂环境准备的 redis
选项。在一些情况下,你可以使用 和
来提高可用性,或者在多个服务器上,创建服务器集群。
【编辑推荐】
【责任编辑: TEL:(010)】
关于&&&&的更多文章
本书是Linux运维领域畅销的、公认的经典著作《高性能Linux服务器
随着云计算、物联网、大数据、移动互联网的大发展,你应该知道这些。
讲师: 7人学习过讲师: 3人学习过讲师: 3人学习过
DevOps是一组过程、方法与系统的统称,当企业希望将原
日,代号为“Trusty Tahr”(值得信赖的塔
日,微软公司正式发布Windows XP操作系统
本书是对Java EE各种技术之间互相协作的概览和补充。
本书还展示了如何编写JavaServer Page(JSP)页面或者企业级JavaBean(EJ
51CTO旗下网站

我要回帖

更多关于 centos redis 连不上 的文章

 

随机推荐