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

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
日志服务 SLS,月写入数据量 50GB 1个月
简介:

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 输出
  38.  
  39. 2.8 验证 
  40. cat > redis.php << EOF 
  41. <?php 
  42. $redis = new Redis(); 
  43. $redis->connect('10.0.100.70',6379); 
  44. $redis->set('foo', 'Hello world'); 
  45. echo $redis->get('foo'); 
  46. ?> 
  47.  
  48. EOF 
  49.  
  50. $ php redis.php 
  51. 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
相关文章
|
12天前
|
存储 人工智能 自然语言处理
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
ChatMCP 是一款基于模型上下文协议(MCP)的 AI 聊天客户端,支持多语言和自动化安装。它能够与多种大型语言模型(LLM)如 OpenAI、Claude 和 OLLama 等进行交互,具备自动化安装 MCP 服务器、SSE 传输支持、自动选择服务器、聊天记录管理等功能。
85 15
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
|
3天前
|
存储 弹性计算 安全
阿里云服务器配置选择策略参考及后期使用注意事项
对于初次购买阿里云服务器的一些新手用户来说,在云服务器配置选择和后期使用过程中有一些不清楚的地方,小编分享几点阿里云服务器配置选择策略,以及后期使用注意事项,购买过程中注意好下面这些事项,能让我们选对选好阿里云服务器,购买之后,在使用过程中,注意下面这些事项,能够让我们更好、更安全的使用阿里云服务器。下面是小编分享的一份详尽的阿里云服务器配置与使用指南,以供参考和借鉴。
|
1月前
|
安全 Linux 应用服务中间件
从零开始启动、配置、保护你的云服务器并搭建一个简单的网站
本文详细介绍了如何准备原料、搭建基础环境、进行安全防护、建设网站、管理证书以及开启BBR优化网络性能。主要内容包括获取健康云服务器、配置SSH登录、创建非root用户、启用密钥认证、安装Nginx、申请TLS证书、配置HTTPS自动跳转及优化网络性能等步骤。通过本文,读者可以掌握从零开始搭建个人网站的全过程。
45 1
从零开始启动、配置、保护你的云服务器并搭建一个简单的网站
|
22天前
|
开发框架 .NET PHP
网站应用项目如何选择阿里云服务器实例规格+内存+CPU+带宽+操作系统等配置
对于使用阿里云服务器的搭建网站的用户来说,面对众多可选的实例规格和配置选项,我们应该如何做出最佳选择,以最大化业务效益并控制成本,成为大家比较关注的问题,如果实例、内存、CPU、带宽等配置选择不合适,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文将详细解析企业在搭建网站应用项目时选购阿里云服务器应考虑的一些因素,以供参考。
|
1月前
|
存储 人工智能 弹性计算
阿里云弹性计算(ECS)提供强大的AI工作负载平台,支持灵活的资源配置与高性能计算,适用于AI训练与推理
阿里云弹性计算(ECS)提供强大的AI工作负载平台,支持灵活的资源配置与高性能计算,适用于AI训练与推理。通过合理优化资源分配、利用自动伸缩及高效数据管理,ECS能显著提升AI系统的性能与效率,降低运营成本,助力科研与企业用户在AI领域取得突破。
50 6
|
1月前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
63 4
|
1月前
|
Ubuntu 网络协议 关系型数据库
超聚变服务器2288H V6使用 iBMC 安装 Ubuntu Server 24.04 LTS及后续系统配置
【11月更文挑战第15天】本文档详细介绍了如何使用iBMC在超聚变服务器2288H V6上安装Ubuntu Server 24.04 LTS,包括连接iBMC管理口、登录iBMC管理界面、配置RAID、安装系统以及后续系统配置等步骤。
120 4
|
1月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
64 4
|
弹性计算 监控 Kubernetes
|
2天前
|
人工智能 JSON Linux
利用阿里云GPU加速服务器实现pdf转换为markdown格式
随着AI模型的发展,GPU需求日益增长,尤其是个人学习和研究。直接购置硬件成本高且更新快,建议选择阿里云等提供的GPU加速型服务器。
利用阿里云GPU加速服务器实现pdf转换为markdown格式