redis 服务器/客户端安装与配置

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介:

redis 服务器/客户端安装与配置

1 redis server

 
  1. 1.1 获取redis源码包 //官网 http://redis.io/ 
  2. wget -c http://redis.googlecode.com/files/redis-2.4.15.tar.gz 
  3.  
  4.  
  5. 1.2 解包 
  6. tar zxf redis-2.4.15.tar.gz 
  7. cd redis-2.4.15 
  8.  
  9. 1.3 安装 
  10. make PREFIX=/usr/local/redis install 
  11.  
  12. //安装完成后,会/usr/local/redis/bin/目录下生成5个可执行文件, 
  13. ls /usr/local/redis/bin/ 
  14. redis-benchmark  redis-check-aof  redis-check-dump  redis-cli  redis-server 
  15.  
  16. redis-server:Redis服务器的daemon启动程序 
  17. redis-cli:Redis命令行操作工具。 
  18. redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能 
  19. redis-check-dump: 检查file.rdb 文件 
  20. redis-check-aof:检查file.aof 文件 
  21.  
  22. 1.4 配置redis 
  23. //建立conf与var目录 
  24. mkdir -p /usr/local/redis/conf 
  25. mkdir -p /usr/local/redis/var 
  26.  
  27. //redis.conf 
  28. cat > /usr/local/redis/conf/redis.conf << EOF 
  29. #daemonize:是否以后台daemon方式运行 
  30. daemonize yes 
  31. #pidfile:pid文件位置 
  32. pidfile /var/run/redis.pid 
  33. #bind:监听的ip地址 
  34. bind 10.0.100.70 
  35. #port:监听的端口号 
  36. port 6379 
  37. #timeout:请求超时时间,单位秒 
  38. timeout 120 
  39. #loglevel:log信息级别,支持四个级别,debug,notice,verbose,warning 
  40. loglevel warning 
  41. #日志文件位置 
  42. logfile /usr/local/redis/var/redis.log 
  43. #databases:开启数据库的数量 
  44. databases 16 
  45. ##snapshoot 
  46. #save * *:保存快照的频率,第一个*表示多长时间,第二个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。 
  47. #在900秒之内,redis至少发生1次修改则redis抓快照到磁盘 
  48. save 900 1 
  49. #在300秒之内,redis至少发生100次修改则redis抓快照到磁盘 
  50. save 300 100 
  51. #在60秒之内,redis至少发生10000次修改则redis抓快照到磁盘 
  52. save 60 10000 
  53. #rdbcompression:是否使用压缩 
  54. rdbcompression yes 
  55. #dbfilename:数据快照文件名(只是文件名,不包括目录) 
  56. dbfilename dump.rdb 
  57. #dir:数据快照的保存目录(这个是目录) 
  58. dir /usr/local/redis/var 
  59. ##aof 
  60. #appendonly:是否开启appendonlylog,AOF是另一种持久化方式,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。 
  61. appendonly no 
  62. #appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步) 
  63. appendfsync everysec 
  64. no-appendfsync-on-rewrite no 
  65. auto-aof-rewrite-percentage 100 
  66. auto-aof-rewrite-min-size 64mb 
  67. ##slow log 
  68. #如果操作时间大于0.001秒,记录slow log,这个log是记录在内存中的,可以用redis-cli slowlog get 命令查看 
  69. slowlog-log-slower-than 10000 
  70. #slow log 的最大长度 
  71. slowlog-max-len 128 
  72. ##virtual memory 
  73. #是否使用虚拟内存 
  74. vm-enabled no 
  75. #swap文件,不同redis swap文件不能共享。而且生产环境下,不建议放在tmp目录。 
  76. vm-swap-file /tmp/redis.swap 
  77. #vm大小限制。0 不限制,建议60-80% 可用内存大小 
  78. vm-max-memory 0 
  79. #根据缓存内容大小调整,默认32字节 
  80. vm-page-size 32 
  81. #page数。每 8 page 会占用1字节内存 
  82. vm-pages 134217728 
  83. #m 最大io线程数。注意: 0 标志禁止使用vm(开关真多) 
  84. vm-max-threads 4 
  85. hash-max-zipmap-entries 512 
  86. hash-max-zipmap-value 64 
  87. list-max-ziplist-entries 512 
  88. list-max-ziplist-value 64 
  89. set-max-intset-entries 512 
  90. zset-max-ziplist-entries 128 
  91. zset-max-ziplist-value 64 
  92. activerehashing yes 
  93. ##limit 
  94. #最大使用内存单位<bytes>,默认情况下redis会占用可用的所有内存 
  95. maxmemory 256000000 
  96. #maxclients 最大连接数, 0 表示不限制 
  97. maxclients 1024 
  98. ##replication 
  99. requirepass dongnan 
  100. #slave 
  101. #master的ip地址与端口号 
  102. #slaveof 10.0.100.70 6379 
  103. #设置slave到master的认证 
  104. #masterauth dongnan 
  105. #在master服务器挂掉或者同步失败时,从服务器是否继续提供服务 
  106. slave-serve-stale-data yes 
  107.  
  108.  
  109. EOF 
  110.  
  111. 1.5 启动redis 
  112. /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf 
  113.  
  114. //redis 进程与端口号 
  115. ps -ef | grep redis 
  116. root     19426     1  0 13:44 ?        00:00:00 /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf 
  117. lsof -i :6379 
  118. COMMAND     PID USER   FD   TYPE  DEVICE SIZE NODE NAME 
  119. redis-ser 19426 root    4u  IPv4 7257634       TCP *:6379 (LISTEN) 
  120.  
  121. 1.6 验证redis 
  122. telnet 10.0.100.70 6379 
  123. Trying 10.0.100.70... 
  124. Connected to monitor.test.com (10.0.100.70). 
  125. Escape character is '^]'. 
  126. set name test 
  127. +OK 
  128. get name 
  129. $4 
  130. test 
  131. quit 
  132. +OK 
  133. Connection closed by foreign host. 
  134.  
  135. //使用redis-cli 
  136. /usr/local/redis/bin/redis-cli -h 10.0.100.70 info 
  137. redis_version:2.4.15 
  138. redis_git_sha1:00000000 
  139. redis_git_dirty:0 
  140. arch_bits:64 
  141. multiplexing_api:epoll 
  142. gcc_version:4.4.4 
  143. process_id:16508 
  144. uptime_in_seconds:602110 
  145. uptime_in_days:6 
  146. lru_clock:1948675 
  147. used_cpu_sys:129.20 
  148. used_cpu_user:117.94 
  149. used_cpu_sys_children:14.57 
  150. used_cpu_user_children:158.95 
  151. connected_clients:1 
  152. connected_slaves:0 
  153. client_longest_output_list:0 
  154. client_biggest_input_buf:0 
  155. blocked_clients:0 
  156. used_memory:594999992 
  157. used_memory_human:567.44M 
  158. used_memory_rss:172482560 
  159. used_memory_peak:594999904 
  160. used_memory_peak_human:567.44M 
  161. mem_fragmentation_ratio:0.29 
  162. mem_allocator:jemalloc-2.2.5 
  163. loading:0 
  164. aof_enabled:0 
  165. changes_since_last_save:0 
  166. bgsave_in_progress:0 
  167. last_save_time:1340097972 
  168. bgrewriteaof_in_progress:0 
  169. total_connections_received:34 
  170. total_commands_processed:6946723 
  171. expired_keys:0 
  172. evicted_keys:0 
  173. keyspace_hits:32 
  174. keyspace_misses:0 
  175. pubsub_channels:0 
  176. pubsub_patterns:0 
  177. latest_fork_usec:9602 
  178. vm_enabled:0 
  179. role:master 
  180. db0:keys=1969249,expires=0 
  181.  
  182.  
  183. 1.7 关闭redis 
  184. /usr/local/redis/bin/redis-cli -h 10.0.100.70  -p 6379 shutdown 



 2 redis(php) api/客户端/扩展

 
  1. Redis的客户端实际上担负了通过网络协议与Redis Server进行通信的过程,通信的过程必须遵循协议规范,
  2. 让客户的调用更加符合特定语言的使用习惯。现有PHP客户端:rediska、phpredis、Predis、Redisent。
  3. 这些客户端中,有纯PHP的实现方案,也有二进制版本的实现方案。这里我们选择二进制版本的phpreids。 
  4. //官网地址 http://redis.io/clients/ 
  5.  
  6. 2.1 获取源码包 
  7. wget -c https://nodeload.github.com/nicolasff/phpredis/tarball/master 
  8.  
  9. 2.2 解包(没错你下载的就是master) 
  10. tar zxf master 
  11. cd nicolasff-phpredis-f1231c9/ 
  12.  
  13. 2.3 准备php扩展库所需环境 
  14. /usr/bin/phpize 
  15. Configuring for: 
  16. PHP Api Version:         20041225 
  17. Zend Module Api No:      20050922 
  18. Zend Extension Api No:   220051025 
  19.  
  20. 2.4 配置 
  21. ./configure --with-php-config=/usr/bin/php-config 

  22. 2.5 编译安装 
  23. make && make install 
  24. //生成的redis.so 
  25. file /usr/lib64/php/modules/redis.so 
  26. /usr/lib64/php/modules/redis.so: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), not stripped 
  27.  
  28. 2.6 编辑/etc/php.ini (我的rpm 方式安装的php) 
  29. extension_dir = "/usr/lib64/php/modules" 
  30. extension=redis.so 
  31. //重启apache 
  32. /etc/init.d/httpd restart 
  33.  
  34. 2.7 验证模块 
  35. php -m | grep -i 'redis' 
  36. redis 
  37. //phpinfo 输出

  2.8 验证   cat > redis.php << EOF  <?php  $redis = new Redis();  $redis->connect('10.0.100.70',6379);  $redis->set('foo', 'Hello world');  echo $redis->get('foo');  ?>    EOF    $ php redis.php  Hello world$ 



3 redis 定义
http://zh.wikipedia.org/wiki/Redis
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持

数据模型 
除了常规的数值或字符串,redis的键值还可以是以下形式之一:
Lists (列表)
Sets (集合)
Sorted sets (有序集合)
Hashes (哈希表)

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

主从同步
Redis支持将数据同步到多台从库上,这种特性对提高读取性能非常有益。
    
性能
相比需要依赖磁盘记录每个更新的数据库,基于内存的特性无疑给Redis带来了非常优秀的性能。读写操作之间有显著的性能差异。

提供API的语言:
C/C++/C#/Clojure/Common Lisp/Erlang/Haskell/Java/Javascript/Lua/Objective-C/Perl/PHP/Python/Ruby/Scala/Go/Tcl


4 redis-cli 命令

 
  1. 连接操作相关的命令 
  2.     quit:关闭连接(connection) 
  3.     auth:简单密码认证 
  4.  
  5. 持久化 
  6.     save:将数据同步保存到磁盘 
  7.     bgsave:将数据异步保存到磁盘 
  8.     lastsave:返回上次成功将数据保存到磁盘的Unix时戳 
  9.     shundown:将数据同步保存到磁盘,然后关闭服务 
  10.  
  11. 远程服务控制 
  12.     info:提供服务器的信息和统计 
  13.     monitor:实时转储收到的请求 
  14.     slaveof:改变复制策略设置 
  15.     config:在运行时配置Redis服务器 
  16.  
  17. 对value操作的命令 
  18.     exists(key):确认一个key是否存在 
  19.     del(key):删除一个key 
  20.     type(key):返回值的类型 
  21.     keys(pattern):返回满足给定pattern的所有key 
  22.     randomkey:随机返回key空间的一个key 
  23.     rename(oldname, newname):将key由oldname重命名为newname,若newname存在则删除newname表示的key 
  24.     dbsize:返回当前数据库中key的数目 
  25.     expire:设定一个key的活动时间(s) 
  26.     ttl:获得一个key的活动时间 
  27.     select(index):按索引查询 
  28.     move(key, dbindex):将当前数据库中的key转移到有dbindex索引的数据库 
  29.     flushdb:删除当前选择数据库中的所有key 
  30.     flushall:删除所有数据库中的所有key 




参考
http://www.redis.cn/documentation.html
redis安装使用
Redis 的安装配置介绍
redis安装以及php扩展 
Redis的PHP客户端

redis-cli 命令总结
http://slj.me/2011/04/redis-cli-commands/
redis-commands

http://www.redis.cn/commands.html
 

#update 20120709

redis replication

磁盘io

cpu

 

结束

更多请:

linux 相关 37275208

vmware 虚拟化相关  166682360

本文转自 dongnan 51CTO博客,原文链接:http://blog.51cto.com/dngood/925481


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6天前
|
NoSQL Linux 测试技术
Redis的安装(Linux版)
Redis的安装(Linux版)
149 1
|
13天前
|
消息中间件 安全 Unix
SSH配置多台服务器之间的免密登陆以及登陆别名
SSH配置多台服务器之间的免密登陆以及登陆别名
25 1
|
16天前
|
NoSQL Linux Redis
linux 下和win下安装redis 并添加开机自启 图文详解
linux 下和win下安装redis 并添加开机自启 图文详解
17 0
|
19天前
|
网络协议 Python
pythonTCP客户端编程连接服务器
【4月更文挑战第6天】本教程介绍了TCP客户端如何连接服务器,包括指定服务器IP和端口、发送连接请求、处理异常、进行数据传输及关闭连接。在Python中,使用`socket`模块创建Socket对象,然后通过`connect()`方法尝试连接服务器 `(server_ip, server_port)`。成功连接后,利用`send()`和`recv()`进行数据交互,记得在通信完成后调用`close()`关闭连接,确保资源释放和程序稳定性。
|
28天前
|
弹性计算
2024年阿里云服务器不同实例规格与配置实时优惠价格整理与分享
2024年阿里云服务器的优惠价格新鲜出炉,有特惠云服务器也有普通优惠价格,本文为大家整理汇总了2024年阿里云服务器的优惠价格,包含特惠云服务器和其他配置云服务器的优惠价格。以便大家了解自己想购买的云服务器选择不同实例规格和带宽情况下的价格,仅供参考。
2024年阿里云服务器不同实例规格与配置实时优惠价格整理与分享
|
11天前
|
存储 弹性计算 安全
阿里云服务器2核2G、2核4G配置最新租用收费标准及活动价格参考
2核2G、2核4G配置是很多个人和企业建站以及部署中小型的web应用等场景时首选的云服务器配置,这些配置的租用价格也是用户非常关心的问题,本文为大家整理汇总了2024年阿里云服务器2核2G、2核4G配置不同实例规格及地域之间的收费标准,同时整理了这些配置最新活动价格,以供大家参考和选择。
阿里云服务器2核2G、2核4G配置最新租用收费标准及活动价格参考
|
13天前
|
域名解析 网络协议 应用服务中间件
阿里云服务器配置免费https服务
阿里云服务器配置免费https服务
|
16天前
|
安全 关系型数据库 MySQL
国产麒麟服务器等保二级 配置规范(一)
国产麒麟服务器等保二级 配置规范(一)
33 0
|
16天前
|
数据采集
robots.txt配置 减小服务器压力
robots.txt配置 减小服务器压力
13 0
|
22天前
|
存储 缓存 NoSQL
Redis 服务器指南:高性能内存数据库的完整使用指南
Redis 服务器指南:高性能内存数据库的完整使用指南