Redisp安装与简介

本文主要内容来自百度百科

http://baike.baidu.com/link?url=HBNA38ElO98O8FWOWKcmjLTED8NUSM6rUeaZxZJxQH4WtWtnnCHbXncVjFhINR7ubZ0sf6ZDRKCyYgc2o4ooea

1.Redis简介

    Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

   Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

   Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。

   Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得从数据库在任何地方同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。

  

性能

下面是官方的bench-mark数据:[1] 

测试完成了50个并发执行100000个请求。

设置和获取的值是一个256字节字符串。

Linux box是运行Linux 2.6,这是X3320 Xeon 2.5 ghz。

文本执行使用loopback接口(127.0.0.1)。

结果:读的速度是110000次/s,写的速度是81000次/s 。

 

存储

redis使用了两种文件格式:全量数据和增量请求。

全量数据格式是把内存中的数据写入磁盘,便于下次读取文件进行加载;

增量请求文件则是把内存中的数据序列化为操作请求,用于读取文件进行replay得到数据,序列化的操作包括SET、RPUSH、SADD、ZADD。

redis的存储分为内存存储、磁盘存储和log文件三部分,配置文件中有三个参数对其进行配置。

save seconds updates,save配置,指出在多长时间内,有多少次更新操作,就将数据同步到数据文件。这个可以多个条件配合,比如默认配置文件中的设置,就设置了三个条件。

appendonly yes/no ,appendonly配置,指出是否在每次更新操作后进行日志记录,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面的save条件来同步的,所以有的数据会在一段时间内只存在于内存中。

appendfsync no/always/everysec ,appendfsync配置,no表示等操作系统进行数据缓存同步到磁盘,always表示每次更新操作后手动调用fsync()将数据写到磁盘,everysec表示每秒同步一次。

2.Redis安装说明

[html]  view plain  copy
  1. [root@zookeeper_slave_01 soft]# wget http://download.redis.io/releases/redis-2.8.19.tar.gz  
  2. [root@zookeeper_slave_01 soft]# tar zxvf redis-2.8.19.tar.gz  
  3. [root@zookeeper_slave_01 soft]# cd redis-2.8.19/  
  4. [root@zookeeper_slave_01 redis-2.8.19]# make  

make命令执行完成后,会在当前目录下生成本个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-stat,它们的作用如下:

redis-server:Redis服务器的daemon启动程序

redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作

redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能

redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况。

 

启动redis,使用配置文件redis.conf,可以在里面设置参数, 主要配置参数的意义:

daemonize:是否以后台daemon方式运行

pidfile:pid文件位置

port:监听的端口号

timeout:请求超时时间

loglevel:log信息级别

logfile:log文件位置

databases:开启数据库的数量

save * *:保存快照的频率,第一个*表示多长时间,第二个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。

rdbcompression:是否使用压缩

dbfilename:数据快照文件名(只是文件名,不包括目录)

dir:数据快照的保存目录(这个是目录)

appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。

appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)

[html]  view plain  copy
  1. [root@zookeeper_slave_01 redis-2.8.19]# cd src  
  2. [root@zookeeper_slave_01 src]# ./redis-server ../redis.conf  
  3.                 _._                                                    
  4.            _.-``__ ''-._                                               
  5.       _.-``    `.  `_.  ''-._           Redis 2.8.19 (00000000/0) 64 bit  
  6.   .-`` .-```.  ```\/    _.,_ ''-._                                     
  7.  (    '      ,       .-`  | `,    )     Running in stand alone mode  
  8.  |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379  
  9.  |    `-._   `._    /     _.-'    |     PID: 2782  
  10.   `-._    `-._  `-./  _.-'    _.-'                                     
  11.  |`-._`-._    `-.__.-'    _.-'_.-'|                                    
  12.  |    `-._`-._        _.-'_.-'    |           http://redis.io          
  13.   `-._    `-._`-.__.-'_.-'    _.-'                                     
  14.  |`-._`-._    `-.__.-'    _.-'_.-'|                                    
  15.  |    `-._`-._        _.-'_.-'    |                                    
  16.   `-._    `-._`-.__.-'_.-'    _.-'                                     
  17.       `-._    `-.__.-'    _.-'                                         
  18.           `-._        _.-'                                             
  19.               `-.__.-'                                                 
  20.   
  21. [2782] 26 Feb 22:17:33.104 # Server started, Redis version 2.8.19  
  22. [2782] 26 Feb 22:17:33.105 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.  
  23. [2782] 26 Feb 22:17:33.105 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.  
  24. [2782] 26 Feb 22:17:33.106 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.  
  25. [2782] 26 Feb 22:17:33.106 * DB loaded from disk: 0.000 seconds  
  26. [2782] 26 Feb 22:17:33.106 * The server is now ready to accept connections on port 6379  

3.Redis使用说明

[html]  view plain  copy
  1. [root@zookeeper_slave_01 src]# ./redis-cli  
  2. 127.0.0.1:6379> set username abcde  
  3. OK  
  4. 127.0.0.1:6379> get username  
  5. "abcde"  
  6. 127.0.0.1:6379> set age 11  
  7. OK  
  8. 127.0.0.1:6379> get age  
  9. "11"  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值