redis

本次使用linux版本是centos7:

1、下载压缩包到本地:

比如:curl http://download.redis.io/releases/redis-3.0.4.tar.gz -o redis-3.0.4.tar.gz

或者:# wget http://download.redis.io/releases/redis-3.0.4.tar.gz

如果没有安装过 GCC 和 Make,那么就使用 yum 安装:

# yum install gcc make

 

2、解压,,进入解压后的目录,依次:

# tar zxvf redis-3.0.4.tar.gz

# cd redis-3.0.4

# make

# make install

 

3、启动:

在/redis-3.0.4/src目录中,直接输出以下命令即可:

# redis-server /redis-3.0.4/redis.conf

但当前配置文件为在前台启动,即你退出或关闭当前窗口,redis就会关闭服务,所以修改配置文件:

# vi redis.conf

将daemonize no改为daemonize yes即可在后台启动。

 

4、客户端连接,进入操作:

# redis-cli 或 # redis-cli -h 127.0.0.1 -p 6379

从客户端连接中退出:

# exit

 

5、关闭,使用客户端命令即可:

# redis-cli shutdown

 

6、设置开机自启动:如果要将redis开启关闭等做成service服务,可参考此文章,或这一篇

配置各项参数:

  • daemonize:是否以后台daemon方式运行
  • pidfile:pid文件位置
  • port:监听的端口号
  • timeout:请求超时时间
  • loglevel:log信息级别
  • logfile:log文件位置
  • databases:开启数据库的数量
  • save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
  • rdbcompression:是否使用压缩
  • dbfilename:数据快照文件名(只是文件名)
  • dir:数据快照的保存目录(仅目录)
  • appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
  • appendfsync:appendonlylog如何同步到磁盘。三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步

6、redis的两种持久化模式:可参考博文

RDB(快照) 和 AOF (记录执行日志),通常,Redis将数据存储于内存中,或被配置为使用虚拟内存。通过两种方式可以实现数据持久化:使用快照的方式,将内存中的数据不断写入磁盘;或使用类似MySQL的日志方式,记录每次更新的日志。前者性能较高,但是可能会引起一定程度的数据丢失;后者相反。

 

redis集群:

1、修改配置文件:

port  6379

pidfile  /var/run/redis_6379.pid          #pid文件记录对应进程的pid,防止进程启动多个副本,启动时,同一进程的多余进程会退出。

daemonize yes                                                # redis默认不是后台启动,这里修改成后台启动
cluster-enabled yes                                        # 允许redis支持集群模式
cluster-config-file  nodes_6379.conf     #集群的配置  配置文件首次启动自动生成 7000,7001,7002
cluster-node-timeout 15000                          # 节点超时毫秒

appendonly  yes                           //aof日志开启

类似这种,复制几份redis.conf到不同路径,改一下端口等,

2、使用不同配置文件分别启动

3、安装ruby环境:

# yum install -y ruby rubygems
# gem install redis

4、创建集群(在redis/src):

# redis-trib.rb create --replicas 1 192.168.1.1:6379 192.168.1.1:6380 192.168.1.1:6381 192.168.1.2:6379 192.168.1.2:6380 192.168.1.2:6381

如果执行报错,那是ruby安装有问题:

/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file

 

 

 

整合到spring遇到的问题:

1、centos安装redis,其他服务器互相ping的通,但访问对方的redis就会出现Could not connect to Redis at 192.168.1.195:6379: No route to host:

解决:输入命令:# iptables -F

 

 

知识点:

1、生成快照的SAVE和 BGSAVE区别:

都是调用rdbSave函数持久化生成快照,SAVE会阻塞主进程到结束,BGSAVE则会fork一个子进程,而主进程继续处理请求。

所以一般用SAVE,缓存文件特别大,达到几十G时,就要考虑写脚本手动持久化。

2、只追加文件(AOF)持久化:每次更新都做记录,用于数据安全性高的地方。但每秒可处理大约200个命令。

3、一般主用来处理请求,从用来做备份。主从保持一致是通过复制:主发送快照给从进行更新。

 

4、redis不支持主主复制,而很多公司会用到mysql的主主复制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值