redis 安装配置和常用命令

redis内存数据库(缓存服务器)适合高并发的读写应用场景,超越磁盘IO读写的瓶颈。


*****************redis适用场合****************

1.取最新N个数据的操作

2.排行榜应用,取TOP N 操作

3.需要精确设定过期时间的应用

4.计数器应用

5.Uniq操作,获取某段时间所有数据排重值

6.实时系统,反垃圾系统

7.Pub/Sub构建实时消息系统

8.构建队列系统

9.缓存

*****************安装配置****************

安装redis之前先要安装tcl


[html]  view plain  copy
 
  1. .make test报错:  
  2.   
  3. You need tcl 8.5 or newer in order to run the Redis test  
  4. make: *** [test] Error 1  
  5.   
  6.   
  7. 安装 Tcl  
  8.   
  9. tar zxvf  tcl8.6.0-src.tar.gz  
  10.   
  11. cd tcl8.6.0/unix  
  12.   
  13. ./configure  
  14.   
  15. make  
  16.   
  17. make install  
  18.   
  19. chmod -v 755 /usr/lib/libtcl8.6.so  

1下载安装

[html]  view plain  copy
 
  1. 目前最新稳定版本为:redis-2.8.17.tar.gz  
  2.   
  3. http://download.redis.io/releases/redis-2.8.17.tar.gz  
  4.   
  5. (查看Liunx版本方式:getconf LONG_BIT)  
  6. 如果是32位:make CFLAGS="-march=i686"  
  7. 如果是64位:make  
  8.   
  9. 要是编译失败(make clean)  
  10.   
  11. cd /opt/portal/redis/redis-2.8.8/src  
  12. make test  
  13. make install    

2配置文件目录结构

[html]  view plain  copy
 
  1. Redis 由四个可执行文件:redis-benchmark、<span style="color:#ff0000;">redis-cli、redis-server 、redis-sentinelspan>这4个文件,加上一个redis.conf就构成了整个redis的最终可用包。它们的作用如下:  
  2. redis-server:Redis服务器的daemon启动程序  
  3. redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作  
  4. redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能  
  5. redis-sentinel:redis的监控,配置后检测到master down 会将slave升级为master  
  6. 现在就可以启动redis了,redis只有一个启动参数,就是他的配置文件路径。  

[html]  view plain  copy
 
  1. 移动配置文件位置(为了便于管理)  
  2.   
  3. mkdir -p /opt/portal/redis/bin  
  4.   
  5. mkdir -p /opt/portal/redis/conf  
  6.   
  7. mkdir -p /opt/portal/redis/logs  
  8.   
  9. cd /opt/portal/redis/redis-2.8.8  
  10.   
  11. cp redis.conf sentinel.conf /opt/portal/redis/conf  
  12.   
  13. cd /opt/portal/redis/redis-2.8.8/src  
  14.   
  15. cp  redis-server redis-cli redis-sentinel redis-benchmark  mkreleasehdr.sh redis-check-aof redis-check-dump   /opt/portal/redis/bin  

[html]  view plain  copy
 
  1. <span style="color:#ff0000;">设置别名span>  
  2. vi /etc/profile  
  3. alias redis-server='/opt/portal/redis/bin/redis-server /opt/portal/redis/conf/redis.conf'  
  4. alias redis-cli='/opt/portal/redis/bin/redis-cli'  
  5. 使配置文件生效  
  6. . /etc/profile  

[html]  view plain  copy
 
  1. <h2>3.修改配置文件 h2>  
  2. vi /opt/portal/redis/conf/redis.conf  
  3.   
  4. 一、将daemonize no 中no改为yes [以守护进程方式启动进程]  
  5. 二、如果是slave 需要配置说明他的master是谁:<span style="color:#ff0000;">slaveof 192.168.14.191 6379span>  
  6.   
  7. 4.启动/随机启动:  
  8.   
  9. cd /opt/portal/redis/bin  
  10.   
  11. ./redis-server /opt/portal/redis/conf/redis.conf  #启动redis并指定配置文件。  
  12.   
  13. #vi /etc/rc.local #设置随机启动。  
  14.   
  15. /opt/portal/redis/bin/redis-server /opt/portal/redis/conf/redis.conf  
  16.   
  17. 5.查看是否启动成功   
  18.   
  19. ps -ef | grep redis  
  20.   
  21. netstat -tunpl | grep 6379#查看端口是否占用。  
  22.   
  23. 6.进入客户端/退出   
  24.   
  25. cd /opt/portal/redis/bin  
  26.   
  27. ./redis-cli #进入  
  28.   
  29. quit #退出  ctrl+c  
  30.   
  31. 7.关闭redis    
  32.   
  33. pkill redis-server  #关闭  
  34.   
  35. ./redis-cli shutdown #关闭  
  36. ./redis-cli -p 6397 shutdown //关闭6397端口的redis  
  37. 说明:关闭以后缓存数据会自动dump到硬盘上,硬盘地址见redis.conf中的dbfilename dump.rdb  

[html]  view plain  copy
 
  1. daemonize    如果需要在后台运行,把该项改为yes    
  2.   
  3. pidfile      配置多个pid的地址 默认在/var/run/redis.pid  
  4.   
  5. bind 绑定ip,设置后只接受来自该ip的请求  
  6.   
  7. port 监听端口,默认为6379  
  8.   
  9. timeout      设置客户端连接时的超时时间,单位为秒  
  10.   
  11. loglevel     分为4级,debug、verbose、notice、warning  
  12.   
  13. logfile      配置log文件地址  
  14.   
  15. databases    设置数据库的个数,默认使用的数据库为0  
  16.   
  17. save * *     保存快照的频率,第一个*表示多长时间,第二个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。  
  18.   
  19. rdbcompression    在进行镜像备份时,是否进行压缩  
  20.   
  21. Dbfilename        镜像备份文件的文件名  
  22.   
  23. Dir   数据库镜像备份的文件放置路径  
  24.   
  25. Slaveof     设置数据库为其他数据库的从数据库  
  26.   
  27. Masterauth 主数据库连接需要的密码验证  
  28.   
  29. Requirepass     设置登录时需要使用的密码  
  30.   
  31. Maxclients 限制同时连接的客户数量  
  32.   
  33. Maxmemory 设置redis能够使用的最大内存  
  34.   
  35. Appendonly 是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。  
  36. Appendfsync 设置对appendonly.aof文件同步的频率  
  37.   
  38. 以下了解即可:  
  39.   
  40.   
  41.   
  42. vm-enabled 是否开启虚拟内存支持  
  43.   
  44. vm-swap-file 设置虚拟内存的交换文件路径  
  45.   
  46. vm-max-memory 设置redis使用的最大物理内存大小  
  47.   
  48. vm-page-size 设置虚拟内存的页大小  
  49.   
  50. vm-pages 设置交换文件的总的page数量  
  51.   
  52. vm-max-threads 设置VM IO同时使用的线程数量  
  53.   
  54. Glueoutputbuf 把小的输出缓存存放在一起  
  55.   
  56. hash-max-zipmap-entries 设置hash的临界值  
  57.   
  58. Activerehashing 重新hash  

4常用命令

[html]  view plain  copy
 
  1. select num#选择库,默认在0库,共16个库  
  2.   
  3. auth liweijie#授权用户所需密码(密码就是redis.conf中配置的密码)  
  4. quit/exit/crtl+C#退出客户端  
  5.   
  6. dbsize#返回库里的键的个数。  
  7.   
  8. info#显示redis服务器的相关信息。  
  9.   
  10. config get */loglevel #返回所有/指定的配置信息。  
  11.   
  12. flushdb#删除当前库中的所有键/表。  
  13.   
  14. flushall#删除所有数据库中的所有键/表  
  15.   
  16. keys * #查询所有  
  17.   
  18. keys user*#查询指定的  
  19.   
  20. exists user:001#判断是否存在。  
  21.   
  22. del name#删除指定的键。  
  23.   
  24. expire addr 10#设置过期时间  
  25.   
  26. ttl addr#查询过期时间time to live  
  27.   
  28. move age 1#将age移到1数据库。  
  29.   
  30. get age #获取  
  31.   
  32. persist age#移除age的过期时间。  
  33.   
  34. randomkey#随机返回一个key  
  35.   
  36. rename name1 name2#重命名键  
  37.   
  38. type myset#返回键的类型。  
  39.   
  40. ping #测试redis连接是否存活。  
  41.   
  42. echo lamp#输出一个lamp  


5、Redis持久化机制:  *****************************************************

[html]  view plain  copy
 
  1. 1.两种方式:一、备份数据到磁盘(快照)[ snapshotting(快照)也是默认方式],主从复制也是通过rdb方式  
  2.   
  3.   
  4.        二、记录操作命令[ Append-only file(缩写aof)的方式]  
  5.   
  6.   
  7. 一、备份数据到磁盘(快照)[ snapshotting(快照)也是默认方式]   
  8.   
  9.   
  10.     save 900 1 #900秒内如果超过1个key被修改,则发起快照保存  
  11.   
  12.   
  13.     save 300 10 #300秒内容如超过10个key被修改,则发起快照保存  
  14.   
  15.   
  16.     save 60 10000  
  17.     一定时间间隔内对Redis做一次快照,如果Redis意外Down,而还没有执行快照,那么最后一次快照的数据将会丢失。  
  18.   
  19.   
  20. 二、记录操作命令[ Append-only file(缩写aof)的方式](较安全持久化)   
  21.   
  22.   
  23.     appendonly yes #启用aof 持久化方式   
  24.   
  25.   
  26.     # appendfsync always //收到写命令就立即写入磁盘,最慢,但是保证完全的持久化   
  27.   
  28.   
  29.     appendfsync everysec //每秒钟写入磁盘一次,在性能和持久化方面做了很好的折中  
  30.   
  31.   
  32.     # appendfsync no //完全依赖os,性能最好,持久化没保证  


6.消息订阅***************************************************************


[html]  view plain  copy
 
  1. public tv1 message1  发布消息  
  2. subscribe tv1             订阅tv1  

7状态&性能监控

[html]  view plain  copy
 
  1. 安全监控-Sentinel  
  2. Sentinel是 Redis 自带的工具,它可以对 Redis 主从复制进行监控,并实现主挂掉之后的自动故障转移。  
  3. 在转移的过程中,它还可以被配置去执行一个用户自定义的脚本,在脚本中我们就能够实现报警通知等功能。  
  4.   
  5.   
  6. 性能监控-Redis Live  
  7. Redis Live是一个更通用的 Redis 监控方案,它的原理是定时在 Redis 上执行MONITOR命令,  
  8. 来获取当前 Redis 当前正在执行的命令,并通过统计分析,生成web页面的可视化分析报表。  
  9.   
  10.   
  11. 数据分布  
  12. -Redis-sampler  
  13. Redis-sampler是 Redis 作者开发的工具,它通过采用的方法,能够让你了解到当前 Redis 中的数据的大致类型,数据及分布状况。  
  14.   
  15. -Redis-audit  
  16. Redis-audit是一个脚本,通过它,我们可以知道每一类 key 对内存的使用量。它可以提供的数据有:某一类 key 值的访问频率如何,  
  17. 有多少值设置了过期时间,某一类 key 值使用内存的大小,这很方便让我们能排查哪些 key 不常用或者压根不用。  
  18.   
  19. -Redis-rdb-tools  
  20. Redis-rdb-tools跟 Redis-audit 功能类似,不同的是它是通过对 rdb 文件进行分析来取得统计数据的。  
  21.   
  22.   
  23. 1、redis-benchmark   
  24. redis基准信息,redis服务器性能检测   
  25.   
  26. redis-benchmark -h localhost -p 6379 -c 100 -n 100000   
  27. 100个并发连接,100000个请求,检测host为localhost 端口为6379的redis服务器性能   
  28.    
  29. 2、redis-cli   
  30.   
  31. redis-cli -h localhost -p 6379 monitor   
  32. Dump all the received requests in real time;   
  33. 监控host为localhost,端口为6379,redis的连接及读写操作   
  34.    
  35. redis-cli -h localhost -p 6379 info   
  36. Provide information and statistics about the server ;   
  37. 提供host为localhost,端口为6379,redis服务的统计信息  

你可能感兴趣的:(redis)