六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 629|回复: 0

Redis以及Redis的php扩展安装无错版-it论坛-it社区

[复制链接]
 楼主| 发表于 2014-4-4 11:20:57 | 显示全部楼层 |阅读模式
Redis以及Redis的php扩展安装无错版-it论坛-it社区

安装Redis

下载最新的

官网:http://redis.io/  或者  http://code.google.com/p/redis/downloads/list


第一步:下载安装编译

#wget http://redis.googlecode.com/files/redis-2.4.4.tar.gz
#tar zxvf redis-2.4.4.tar.gz
#cd redis-2.4.4
#make
#make install
#cp redis.conf  /etc/

第二步:修改配置

#vi /etc/redis.conf

配置见附录

第三步:启动进程
#redis-server /etc/redis.conf
查看进程有没有成功启动#ps -ef | grep redis
测试输入一个键值
#redis-cli set test "123456"
获取键值
#redis-cli get test



关闭redis
# redis-cli shutdown      //关闭所有   
关闭某个端口上的redis   
# redis-cli -p 6397 shutdown  //关闭6397端口的redis  
说明:关闭以后缓存数据会自动dump到硬盘上,硬盘地址见redis.conf中的dbfilename  dump.rdb

PHP扩展
http://code.google.com/p/php-redis/


附录:无错配置




下面是本人配置的全文件
  1. # Redis configuration file example

  2. # Note on units: when memory size is needed, it is possible to specifiy
  3. # it in the usual form of 1k 5GB 4M and so forth:
  4. #
  5. # 1k => 1000 bytes
  6. # 1kb => 1024 bytes
  7. # 1m => 1000000 bytes
  8. # 1mb => 1024*1024 bytes
  9. # 1g => 1000000000 bytes
  10. # 1gb => 1024*1024*1024 bytes
  11. #
  12. # units are case insensitive so 1GB 1Gb 1gB are all the same.

  13. # By default Redis does not run as a daemon. Use 'yes' if you need it.
  14. # Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
  15. daemonize yes

  16. # When running daemonized, Redis writes a pid file in /var/run/redis.pid by
  17. # default. You can specify a custom pid file location here.
  18. pidfile /var/run/redis.pid

  19. # Accept connections on the specified port, default is 6379.
  20. # If port 0 is specified Redis will not listen on a TCP socket.
  21. port 6379

  22. # If you want you can bind a single interface, if the bind option is not
  23. # specified all the interfaces will listen for incoming connections.
  24. #
  25. bind 127.0.0.1

  26. # Specify the path for the unix socket that will be used to listen for
  27. # incoming connections. There is no default, so Redis will not listen
  28. # on a unix socket when not specified.
  29. #
  30. # unixsocket /tmp/redis.sock
  31. # unixsocketperm 755

  32. # Close the connection after a client is idle for N seconds (0 to disable)
  33. timeout 600

  34. # Set server verbosity to 'debug'
  35. # it can be one of:
  36. # debug (a lot of information, useful for development/testing)
  37. # verbose (many rarely useful info, but not a mess like the debug level)
  38. # notice (moderately verbose, what you want in production probably)
  39. # warning (only very important / critical messages are logged)
  40. loglevel verbose

  41. # Specify the log file name. Also 'stdout' can be used to force
  42. # Redis to log on the standard output. Note that if you use standard
  43. # output for logging but daemonize, logs will be sent to /dev/null
  44. logfile stdout

  45. # To enable logging to the system logger, just set 'syslog-enabled' to yes,
  46. # and optionally update the other syslog parameters to suit your needs.
  47. # syslog-enabled no

  48. # Specify the syslog identity.
  49. # syslog-ident redis

  50. # Specify the syslog facility.  Must be USER or between LOCAL0-LOCAL7.
  51. # syslog-facility local0

  52. # Set the number of databases. The default database is DB 0, you can select
  53. # a different one on a per-connection basis using SELECT <dbid> where
  54. # dbid is a number between 0 and 'databases'-1
  55. databases 16

  56. ################################ SNAPSHOTTING  #################################
  57. #
  58. # Save the DB on disk:
  59. #
  60. #   save <seconds> <changes>
  61. #
  62. #   Will save the DB if both the given number of seconds and the given
  63. #   number of write operations against the DB occurred.
  64. #
  65. #   In the example below the behaviour will be to save:
  66. #   after 900 sec (15 min) if at least 1 key changed
  67. #   after 300 sec (5 min) if at least 10 keys changed
  68. #   after 60 sec if at least 10000 keys changed
  69. #
  70. #   Note: you can disable saving at all commenting all the "save" lines.

  71. save 900 1
  72. save 300 10
  73. save 60 10000

  74. # Compress string objects using LZF when dump .rdb databases?
  75. # For default that's set to 'yes' as it's almost always a win.
  76. # If you want to save some CPU in the saving child set it to 'no' but
  77. # the dataset will likely be bigger if you have compressible values or keys.
  78. rdbcompression yes

  79. # The filename where to dump the DB
  80. dbfilename dump.rdb

  81. # The working directory.
  82. #
  83. # The DB will be written inside this directory, with the filename specified
  84. # above using the 'dbfilename' configuration directive.
  85. #
  86. # Also the Append Only File will be created inside this directory.
  87. #
  88. # Note that you must specify a directory here, not a file name.
  89. dir /usr/local/redis-2.4.4
复制代码
中文说明:
1,是否以后台进程运行,默认为no
daemonize no
2,如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pid
pidfile /var/run/redis.pid
3,监听端口,默认为6379
port 6379
4,绑定主机IP,默认值为127.0.0.1(注释)
bind 127.0.0.1
5,超时时间,默认为300(秒)
timeout 300
6,日志记录等级,有4个可选值,debug,verbose(默认值),notice,warning
loglevel verbose
7,日志记录方式,默认值为stdout
logfile stdout
8,可用数据库数,默认值为16,默认数据库为0
databases 16
9,指出在多长时间内,有多少次更新操作,就将数据同步到数据文件。这个可以多个条件配合,比如默认配置文件中的设置,就设置了三个条件。
900秒(15分钟)内至少有1个key被改变
save 900 1
300秒(5分钟)内至少有10个key被改变
save 300 10
10,存储至本地数据库时是否压缩数据,默认为yes
rdbcompression yes
11,本地数据库文件名,默认值为dump.rdb
dbfilename /root/redis_db/dump.rdb
12,本地数据库存放路径,默认值为 ./
dir /root/redis_db/
13,当本机为从服务时,设置主服务的IP及端口(注释)
slaveof <masterip> <masterport>
14,当本机为从服务时,设置主服务的连接密码(注释)
masterauth <master-password>
15,连接密码(注释)
requirepass foobared
16,最大客户端连接数,默认不限制(注释)
maxclients 128
17,设置最大内存,达到最大内存设置后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理后,任到达最大内存设置,将无法再进行写入操作。(注释)
maxmemory <bytes>
18,是否在每次更新操作后进行日志记录,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认值为no
appendonly yes
19,更新日志文件名,默认值为appendonly.aof(注释)
appendfilename /root/redis_db/appendonly.aof
20,更新日志条件,共有3个可选值。no表示等操作系统进行数据缓存同步到磁盘,always表示每次更新操作后手动调用fsync()将数据写到磁盘,everysec表示每秒同步一次(默认值)。
appendfsync everysec
21,是否使用虚拟内存,默认值为no
vm-enabled yes
22,虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个Redis实例共享
vm-swap-file /tmp/redis.swap
23,将所有大于vm-max-memory的数据存入虚拟内存,无论vm-max-memory设置多小,所有索引数据都是内存存储的 (Redis的索引数据就是keys),也就是说,当vm-max-memory设置为0的时候,其实是所有value都存在于磁盘。默认值为0。
vm-max-memory 0
24,虚拟内存文件以块存储,每块32bytes
vm-page-size 32
25,虚拟内在文件的最大数
vm-pages 134217728
26,可以设置访问swap文件的线程数,设置最好不要超过机器的核数,如果设置为0,那么所有对swap文件的操作都是串行的.可能会造成比较长时间的延迟,但是对数据完整性有很好的保证.
vm-max-threads 4
27,把小的输出缓存放在一起,以便能够在一个TCP packet中为客户端发送多个响应,具体原理和真实效果我不是很清楚。所以根据注释,你不是很确定的时候就设置成yes
glueoutputbuf yes
28,在redis 2.0中引入了hash数据结构。当hash中包含超过指定元素个数并且最大的元素没有超过临界时,hash将以一种特殊的编码方式(大大减少内存使用)来存储,这里可以设置这两个临界值
hash-max-zipmap-entries 64
29,hash中一个元素的最大值
hash-max-zipmap-value 512
30,开启之后,redis将在每100毫秒时使用1毫秒的CPU时间来对redis的hash表进行重新hash,可以降低内存的使用。当你的使 用场景中,有非常严格的实时性需要,不能够接受Redis时不时的对请求有2毫秒的延迟的话,把这项配置为no。如果没有这么严格的实时性要求,可以设置 为yes,以便能够尽可能快的释放内存
activerehashing yes

可以参考:Redis的部署使用文档  http://www.elain.org/?p=505========================================================
安装PHP的Redis扩展

先去下载https://github.com/nicolasff/phpredis/downloads
#wget https://github.com/nicolasff/phpredis/downloads
# tar -zxvf nicolasff-phpredis-2.1.3-124-gd4ad907.tar.gz
# mv nicolasff-phpredis-d4ad907 php-5.3.8/ext/phpredis/
# cd php-5.3.8/ext/phpredis/
# /usr/local/php/bin/phpize
# ./configure --with-php-config=/usr/local/php/bin/php-config
# make && make install


配置php.ini
vi /usr/local/php/lib/php.ini
(加入:
extension=redis.so
)
先要看看有没有extension_dir=/…….
重启apache或者nginx
# /usr/local/apache2/bin/apachectl restart

测试代码:
  1. <?php

  2. $redis = new Redis();

  3. $redis->connect('127.0.0.1',6379);

  4. $redis->set('test','hello world!');

  5. echo $redis->get('test');


  6. ?>
复制代码
参考:
Linux(CentOS 5.5) Redis 安装及RedisPHP拓展安装应用
http://www.linuxidc.com/Linux/2011-08/41404.htm

安装redis和phpredis模块
http://skandgjxa.blog.163.com/blog/static/14152982011712112933816/

RHEL5下编译安装Redis及其PHP扩展库
http://hi.baidu.com/zjstandup/blog/item/9f38b825d379c96c35a80f7f.html

摘自:http://blog.csdn.net/21aspnet/article/details/6960757

Redis以及Redis的php扩展安装无错版-it论坛-it社区
该会员没有填写今日想说内容.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表