redis 服务器/客户端安装与配置
2014-05-29 18:08
441 查看
redis 服务器/客户端安装与配置
1 redis server
2 redis(php) api/客户端/扩展
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 命令
参考
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
![](http://img1.51cto.com/attachment/201207/090606449.png)
cpu
![](http://img1.51cto.com/attachment/201207/090727510.png)
1 redis server
1.1 获取redis源码包 //官网 http://redis.io/ wget -c http://redis.googlecode.com/files/redis-2.4.15.tar.gz 1.2 解包 tar zxf redis-2.4.15.tar.gz cd redis-2.4.15 1.3 安装 make PREFIX=/usr/local/redis install //安装完成后,会/usr/local/redis/bin/目录下生成5个可执行文件, ls /usr/local/redis/bin/ redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server redis-server:Redis服务器的daemon启动程序 redis-cli:Redis命令行操作工具。 redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能 redis-check-dump: 检查file.rdb 文件 redis-check-aof:检查file.aof 文件 1.4 配置redis //建立conf与var目录 mkdir -p /usr/local/redis/conf mkdir -p /usr/local/redis/var //redis.conf cat > /usr/local/redis/conf/redis.conf << EOF #daemonize:是否以后台daemon方式运行 daemonize yes #pidfile:pid文件位置 pidfile /var/run/redis.pid #bind:监听的ip地址 bind 10.0.100.70 #port:监听的端口号 port 6379 #timeout:请求超时时间,单位秒 timeout 120 #loglevel:log信息级别,支持四个级别,debug,notice,verbose,warning loglevel warning #日志文件位置 logfile /usr/local/redis/var/redis.log #databases:开启数据库的数量 databases 16 ##snapshoot #save * *:保存快照的频率,第一个*表示多长时间,第二个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。 #在900秒之内,redis至少发生1次修改则redis抓快照到磁盘 save 900 1 #在300秒之内,redis至少发生100次修改则redis抓快照到磁盘 save 300 100 #在60秒之内,redis至少发生10000次修改则redis抓快照到磁盘 save 60 10000 #rdbcompression:是否使用压缩 rdbcompression yes #dbfilename:数据快照文件名(只是文件名,不包括目录) dbfilename dump.rdb #dir:数据快照的保存目录(这个是目录) dir /usr/local/redis/var ##aof #appendonly:是否开启appendonlylog,AOF是另一种持久化方式,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。 appendonly no #appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步) appendfsync everysec no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb ##slow log #如果操作时间大于0.001秒,记录slow log,这个log是记录在内存中的,可以用redis-cli slowlog get 命令查看 slowlog-log-slower-than 10000 #slow log 的最大长度 slowlog-max-len 128 ##virtual memory #是否使用虚拟内存 vm-enabled no #swap文件,不同redis swap文件不能共享。而且生产环境下,不建议放在tmp目录。 vm-swap-file /tmp/redis.swap #vm大小限制。0 不限制,建议60-80% 可用内存大小 vm-max-memory 0 #根据缓存内容大小调整,默认32字节 vm-page-size 32 #page数。每 8 page 会占用1字节内存 vm-pages 134217728 #m 最大io线程数。注意: 0 标志禁止使用vm(开关真多) vm-max-threads 4 # hash-max-zipmap-entries 512 hash-max-zipmap-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 ##limit #最大使用内存单位<bytes>,默认情况下redis会占用可用的所有内存 maxmemory 256000000 #maxclients 最大连接数, 0 表示不限制 maxclients 1024 ##replication requirepass dongnan #slave #master的ip地址与端口号 #slaveof 10.0.100.70 6379 #设置slave到master的认证 #masterauth dongnan #在master服务器挂掉或者同步失败时,从服务器是否继续提供服务 slave-serve-stale-data yes EOF 1.5 启动redis /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf //redis 进程与端口号 ps -ef | grep redis root 19426 1 0 13:44 ? 00:00:00 /usr/local/redis/bin/redis-server /usr/local/redis/conf/redis.conf lsof -i :6379 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME redis-ser 19426 root 4u IPv4 7257634 TCP *:6379 (LISTEN) 1.6 验证redis telnet 10.0.100.70 6379 Trying 10.0.100.70... Connected to monitor.test.com (10.0.100.70). Escape character is '^]'. set name test +OK get name $4 test quit +OK Connection closed by foreign host. //使用redis-cli /usr/local/redis/bin/redis-cli -h 10.0.100.70 info redis_version:2.4.15 redis_git_sha1:00000000 redis_git_dirty:0 arch_bits:64 multiplexing_api:epoll gcc_version:4.4.4 process_id:16508 uptime_in_seconds:602110 uptime_in_days:6 lru_clock:1948675 used_cpu_sys:129.20 used_cpu_user:117.94 used_cpu_sys_children:14.57 used_cpu_user_children:158.95 connected_clients:1 connected_slaves:0 client_longest_output_list:0 client_biggest_input_buf:0 blocked_clients:0 used_memory:594999992 used_memory_human:567.44M used_memory_rss:172482560 used_memory_peak:594999904 used_memory_peak_human:567.44M mem_fragmentation_ratio:0.29 mem_allocator:jemalloc-2.2.5 loading:0 aof_enabled:0 changes_since_last_save:0 bgsave_in_progress:0 last_save_time:1340097972 bgrewriteaof_in_progress:0 total_connections_received:34 total_commands_processed:6946723 expired_keys:0 evicted_keys:0 keyspace_hits:32 keyspace_misses:0 pubsub_channels:0 pubsub_patterns:0 latest_fork_usec:9602 vm_enabled:0 role:master db0:keys=1969249,expires=0 1.7 关闭redis /usr/local/redis/bin/redis-cli -h 10.0.100.70 -p 6379 shutdown
2 redis(php) api/客户端/扩展
Redis的客户端实际上担负了通过网络协议与Redis Server进行通信的过程,通信的过程必须遵循协议规范, 让客户的调用更加符合特定语言的使用习惯。现有PHP客户端:rediska、phpredis、Predis、Redisent。 这些客户端中,有纯PHP的实现方案,也有二进制版本的实现方案。这里我们选择二进制版本的phpreids。 //官网地址 http://redis.io/clients/ 2.1 获取源码包 wget -c https://nodeload.github.com/nicolasff/phpredis/tarball/master 2.2 解包(没错你下载的就是master) tar zxf master cd nicolasff-phpredis-f1231c9/ 2.3 准备php扩展库所需环境 /usr/bin/phpize Configuring for: PHP Api Version: 20041225 Zend Module Api No: 20050922 Zend Extension Api No: 220051025 2.4 配置 ./configure --with-php-config=/usr/bin/php-config 2.5 编译安装 make && make install //生成的redis.so file /usr/lib64/php/modules/redis.so /usr/lib64/php/modules/redis.so: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), not stripped 2.6 编辑/etc/php.ini (我的rpm 方式安装的php) extension_dir = "/usr/lib64/php/modules" extension=redis.so //重启apache /etc/init.d/httpd restart 2.7 验证模块 php -m | grep -i 'redis' redis //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 命令
连接操作相关的命令 quit:关闭连接(connection) auth:简单密码认证 持久化 save:将数据同步保存到磁盘 bgsave:将数据异步保存到磁盘 lastsave:返回上次成功将数据保存到磁盘的Unix时戳 shundown:将数据同步保存到磁盘,然后关闭服务 远程服务控制 info:提供服务器的信息和统计 monitor:实时转储收到的请求 slaveof:改变复制策略设置 config:在运行时配置Redis服务器 对value操作的命令 exists(key):确认一个key是否存在 del(key):删除一个key type(key):返回值的类型 keys(pattern):返回满足给定pattern的所有key randomkey:随机返回key空间的一个key rename(oldname, newname):将key由oldname重命名为newname,若newname存在则删除newname表示的key dbsize:返回当前数据库中key的数目 expire:设定一个key的活动时间(s) ttl:获得一个key的活动时间 select(index):按索引查询 move(key, dbindex):将当前数据库中的key转移到有dbindex索引的数据库 flushdb:删除当前选择数据库中的所有key 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
![](http://img1.51cto.com/attachment/201207/090606449.png)
cpu
![](http://img1.51cto.com/attachment/201207/090727510.png)
相关文章推荐
- redis 服务器/客户端安装与配置
- redis 服务器/客户端安装与配置
- redis 服务器/客户端安装与配置
- NFS服务器与客户端的安装于配置
- windows上SVN服务器以及客户端TortoiseSVN的安装配置
- Yum软件包的安装以及服务器、客户端的配置
- svn服务器、客户端安装配置及eclipse的svn插件安装
- LOUTS服务器和客户端的安装和配置
- 配置WSUS服务器让客户端统一安装系统补丁
- (转载)【版本控制工具】svn服务器、客户端安装配置
- 1-1-Borland StarTeam 2005 R2服务器客户端安装配置指南[图示]
- windows下SVN服务器和客户端的安装和配置
- [转载]Ubuntu安装配置 git 服务器和客户端
- Redis 数据结构服务器的安装和配置
- 【版本控制工具】svn服务器、客户端安装配置及eclipse的svn检出 推荐
- 【版本控制工具】svn服务器、客户端安装配置及eclipse的svn检出
- svn服务器的配置和svn客户端的安装以及myeclipse中插件的安装