redis 部署

标签: redis | 发表时间:2013-12-07 13:26 | 作者:qingen1
出处:http://blog.csdn.net
一、单机部署
  
tar xvf redis-2.6.16.tar.gz
cd redis-2.6.16
make
make PREFIX=/usr/local/redis install  #指定安装目录为/usr/local/redis,默认安装安装到/usr/local/bin   

拷贝配置文件: cp redis.conf /etc  #配置文件放在/etc目录 sed -i “s/daemonize no/daemonize yes/” /etc/redis.conf #以daemon方式启动在后台 sed -i “s/# bind 127.0.0.1/bind 0.0.0.0/” /etc/redis.conf  #修改监听到所有网卡 sed -i “s#logfile stdout#logfile /var/log/redis.log#” /etc/redis.conf   #设置日志存放文件 启动脚本: cp utils/redis_init_script /etc/init.d/redis  #拷贝模版 chmod +x /etc/init.d/redis #添加执行权限 chkconfig –level 2345 redis on #设置开启启动 脚本如下: # cat /etc/init.d/redis #!/bin/sh # # Simple Redis init.d script conceived to work on Linux systems # as it does use of the /proc filesystem. # chkconfig: 2345 80 10       #添加redhat系列操作系统平台,开机启动需求项(运行级别,开机时服务启动顺序、关机时服务关闭顺序) # description:  Starts, stops redis server.  #描述   REDISPORT=6379 EXEC=/usr/local/redis/bin/redis-server   #指定redis-server可执行文件 CLIEXEC=/usr/local/redis/bin/redis-cli   #指定redis-cli可执行文件   PIDFILE=/var/run/redis.pid  #指定redis pid文件 CONF=”/etc/redis.conf”   #指定redis配置文件   # Source function library. . /etc/rc.d/init.d/functions  #加载功能函数,以在启动描述文字后显示ok等字样   case “$1″ in     start)         if [ -f $PIDFILE ]         then                 echo -n “$PIDFILE exists, process is already running or crashed”         else                 echo -n “Starting Redis server…”  #-n不换行显示                 $EXEC $CONF                 [[ $? -eq 0 ]] && echo_success || echo_failure  #这两行为新增,启动成功显示ok字样                 echo         fi         ;;     stop)         if [ ! -f $PIDFILE ]         then                 echo “$PIDFILE does not exist, process is not running”         else                 PID=$(cat $PIDFILE)                 echo “Stopping …”                 $CLIEXEC -p $REDISPORT shutdown                 while [ -x /proc/${PID} ]                 do                     echo “Waiting for Redis to shutdown …”                     sleep 1                 done                 retval=$?                 echo -n “Redis stopped”    #-n不换行显示                 [[ $retval -eq 0 ]] && echo_success || echo_failure  #这两行为新增,关闭成功显示ok字样                 echo         fi         ;;     *)         echo “Please use start or stop as first argument”         ;; esac 二、主从部署 10.1.6.100(master)—>10.1.6.101(slave) master:配置一样 1、slave:添加如下配置, slaveof 10.1.6.100 6379   2、启动master 3、启动salve 4、查看日志 master日志: [2122] 21 Oct 07:29:05.361 * DB loaded from disk: 0.000 seconds [2122] 21 Oct 07:29:05.361 * The server is now ready to accept connections on port 6379 [2122] 21 Oct 07:30:05.050 * Slave ask for synchronization [2122] 21 Oct 07:30:05.054 * Starting BGSAVE for SYNC [2122] 21 Oct 07:30:05.055 * Background saving started by pid 2130 [2130] 21 Oct 07:30:05.092 * DB saved on disk [2130] 21 Oct 07:30:05.092 * RDB: 6 MB of memory used by copy-on-write [2122] 21 Oct 07:30:05.159 * Background saving terminated with success [2122] 21 Oct 07:30:05.159 * Synchronization with slave succeeded slave日志: [2122] 21 Oct 07:29:05.361 * DB loaded from disk: 0.000 seconds [2122] 21 Oct 07:29:05.361 * The server is now ready to accept connections on port 6379 [2122] 21 Oct 07:30:05.050 * Slave ask for synchronization [2122] 21 Oct 07:30:05.054 * Starting BGSAVE for SYNC [2122] 21 Oct 07:30:05.055 * Background saving started by pid 2130 [2130] 21 Oct 07:30:05.092 * DB saved on disk [2130] 21 Oct 07:30:05.092 * RDB: 6 MB of memory used by copy-on-write [2122] 21 Oct 07:30:05.159 * Background saving terminated with success [2122] 21 Oct 07:30:05.159 * Synchronization with slave succeeded 测试: 在master上使用客户端命令测试。 [root@nosql01 ~]# /usr/local/redis/bin/redis-cli redis 127.0.0.1:6379> get foo (nil) redis 127.0.0.1:6379> set foo bar OK redis 127.0.0.1:6379> 查看master日志: [2122] 21 Oct 08:41:52.643 * 1 changes in 900 seconds. Saving… [2122] 21 Oct 08:41:52.648 * Background saving started by pid 2184 [2184] 21 Oct 08:41:52.721 * DB saved on disk [2184] 21 Oct 08:41:52.722 * RDB: 6 MB of memory used by copy-on-write [2122] 21 Oct 08:41:52.748 * Background saving terminated with success   查看slave日志: [1002] 21 Oct 08:41:52.414 * 1 changes in 900 seconds. Saving… [1002] 21 Oct 08:41:52.418 * Background saving started by pid 1044 [1044] 21 Oct 08:41:52.553 * DB saved on disk [1044] 21 Oct 08:41:52.554 * RDB: 6 MB of memory used by copy-on-write [1002] 21 Oct 08:41:52.619 * Background saving terminated with success master上查看连接: # netstat -na|grep EST|grep 6379 tcp        0      0 10.1.6.100:6379             10.1.6.101:37724            ESTABLISHED 三、常见服务命令: redis-server:Redis服务器的daemon启动程序 redis-cli:Redis命令行操作工具,也可以使用telnet根据其纯文本协议来操作 redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能 #redis-benchmark -n 100000 -c 50 模拟同时有50个客户端发起100000个SETs/Gets查询 redis-check-aof:更新日志检查 redis-check-dump:本地数据库检查 关闭Redis: redis-cli shutdown redis-cli -p 6379 shutdown #关闭指定端口的redis server 启动redis: redis-server /etc/redis.conf 更新redis: make install之前需要把正在运行的老版本redis关闭 四、Redis系统管理相关指令: DBSIZE:返回当前数据库key的数量 INFO:返回当前redis服务器状态和一些统计信息 MONITOR:实时监听并返回redis服务器接收到的所有请求信息 redis 127.0.0.1:6379> MONITOR OK 1382310132.678602 [0 127.0.0.1:56141] “get” “bar” 1382310139.691563 [0 127.0.0.1:56141] “get” “foo” SHUTDOWN:把数据同步保存到磁盘上,并关闭redis服务 CONFIG GET parameter:获取一个redis配置参数信息(个别参数可能无法获取) CONFIG SET parameter value:设置一个redis配置参数信息(个别参数可能无法获取) CONFIG RESETSTAT:重置INFO命令的统计信息(重置包括:Keyspace命中数、Keyspace错误数、处理命令数、接收连接数、过期key数) DEBUG OBJECT key:获取一个key的调试信息 DEBUG SEGFAULT:制造一次服务器当机 FLUSHDB:删除当前数据库中所有key,此方法不会失败; FLUSHALL:删除全部数据库中所有key,此方法不好失败 五、Redis配置文件: # cat /etc/redis.conf |grep -v ^#|grep -v ^$ daemonize yes  #以后台守护进程方式运行 pidfile /var/run/redis.pid #pid文件位置 port 6379   #监听端口 timeout 0  #客户端空闲多少秒后关闭其连接,0不生效 tcp-keepalive 0 loglevel notice  #log信息级别,总共支持四个级别:debu、verbose、notice、warning logfile /var/log/redis.log  #默认为标准输出,如果配置为守护进程方式,而这里又配置为日志记录方式为标准输出,则日志将发送给/dev/null databases 16  #开启数据库的数量,使用”select 库ID”方式切换操作各个数据库 save 900 1  #保存快照的频率,第一个参数表示多长时间,第二次参数表示执行多少次写操作,在一定时间内执行一定数量的写操作,自动保存快照,可设置多个条件。 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes rdbcompression yes  #保存快照是否使用压缩 rdbchecksum yes dbfilename dump.rdb  #数据快照文件名(只是文件名,不包括目录),默认为dump.rdb dir /data/redis  #数据快照的保存目录 #requirepass foobared #设置redis连接密码,如果配置了连接密码,客户端在连接redis时需要通过AUTH <password>命令提供密码,默认关闭 slave-serve-stale-data yes slave-read-only yes repl-disable-tcp-nodelay no slave-priority 100 appendonly no appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb lua-time-limit 5000 slowlog-log-slower-than 10000 slowlog-max-len 128 hash-max-ziplist-entries 512 hash-max-ziplist-value 64 list-max-ziplist-entries 512 list-max-ziplist-value 64 set-max-intset-entries 512 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 activerehashing yes client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 hz 10 aof-rewrite-incremental-fsync yes

作者:qingen1 发表于2013-12-7 13:26:31 原文链接
阅读:145 评论:0 查看评论

相关 [redis] 推荐:

Redis 负载监控——redis-monitor

- - ITeye资讯频道
redis-monitor是一个Web可视化的 redis 监控程序. 使用 Flask 来开发的,代码结构非常简单,适合移植到公司内网使用. redis 服务器信息,包括 redis 版本、上线时间、 os 系统信息等等. 实时的消息处理信息,例如处理 command 数量、连接总数量等. 内存占用、 cpu 消耗实时动态图表.

Redis 起步

- - 博客园_首页
Rdis和JQuery一样是纯粹为应用而产生的,这里记录的是在CentOS 5.7上学习入门文章:. Redis是一个key-value存储系统. 和Memcached类似,但是解决了断电后数据完全丢失的情况,而且她支持更多无化的value类型,除了和string外,还支持lists(链表)、sets(集合)和zsets(有序集合)几种数据类型.

redis 配置

- - 谁主沉浮
# 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写). # 内存配置大小写是一样的.比如 1gb 1Gb 1GB 1gB. # daemonize no 默认情况下,redis不是在后台运行的,如果需要在后台运行,把该项的值更改为yes. # 当redis在后台运行的时候,Redis默认会把pid文件放在/var/run/redis.pid,你可以配置到其他地址.

Cassandra代替Redis?

- - Tim[后端技术]
最近用Cassandra的又逐渐多了,除了之前的360案例,在月初的QCon Shanghai 2013 篱笆网也介绍了其使用案例. 而这篇 百万用户时尚分享网站feed系统扩展实践文章则提到了Fashiolista和Instagram从Redis迁移到Cassandra的案例. 考虑到到目前仍然有不少网友在讨论Redis的用法问题,Redis是一个数据库、内存、还是Key value store?以及Redis和memcache在实际场景的抉择问题,因此简单谈下相关区别.

redis 部署

- - CSDN博客云计算推荐文章
一、单机部署 tar xvf redis-2.6.16.tar.gz cd redis-2.6.16 make make PREFIX=/usr/local/redis install  #指定安装目录为/usr/local/redis,默认安装安装到/usr/local/bin. # chkconfig: 2345 80 10       #添加redhat系列操作系统平台,开机启动需求项(运行级别,开机时服务启动顺序、关机时服务关闭顺序) # description:  Starts, stops redis server.

转 redis vs memcached

- - 数据库 - ITeye博客
传统MySQL+ Memcached架构遇到的问题.   实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题:.   1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间.

nagios 监控redis

- - C1G军火库
下载check_redis.pl. OK: REDIS 2.6.12 on 192.168.0.130:6379 has 1 databases (db0) with 49801 keys, up 3 days 14 hours - connected_clients is 1, blocked_clients is 0 | connected_clients=1 blocked_clients=0.

Redis优化

- - 数据库 - ITeye博客
键名:尽量精简,但是也不能单纯为了节约空间而使用不易理解的键名. 键值:对于键值的数量固定的话可以使用0和1这样的数字来表示,(例如:male/female、right/wrong). 当业务场景不需要数据持久化时,关闭所有的持久化方式可以获得最佳的性能,不过一般都要持久化比较安全,而且是快照和aof同时使用比较安全.

[转]Redis作者谈Redis应用场景

- notsobad - heiyeluren的blog(黑夜路人的开源世界)
文章来源:http://blog.nosqlfan.com/html/2235.html. 毫无疑问,Redis开创了一种新的数据存储思路,使用Redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用Redis灵活多变的数据结构和数据操作,为不同的大象构建不同的冰箱.

Redis-sentinel实现redis HA 过程

- - CSDN博客架构设计推荐文章
本文原创自 http://blog.csdn.net/voipmaker  转载注明出处. Redis-sentinel 介绍:. Redis-sentinel是官方介绍的监控redis的工具,实际是一个进程,通过tcp socket通信. (1)     监控 实时监测当前master和slave的状态.