redis的介绍与使用(一) - 安装、扩展、benchmark等

来源:互联网 发布:win7 32位 tensorflow 编辑:程序博客网 时间:2024/05/16 19:41
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
   redis是一种非关系型数据存储工具,这区别于传统的关系型数据库(像mysql等),类似于memcache,并且其内部集成了对list(链表)、set(集合)的操作,可以很方便快速的处理数据(像插入、删除list取交集 并集 差集等),这极大的减轻了底层数据库的压力,并且给用户更快的响应速度。
   由于只是学习一下,没有应用在项目中,所以这里只是粗略的记一下自己在学习中感觉比较重要的东西,以及自己的一些心得。

   看完了redis的定义,接下来我们安装redis


windows系统redis安装

点此windows版的redis下载

在C:盘中新建了一个文件夹来存放redis,文件包里的各项文件介绍如下:
   redis-server.exe 服务程序
   redis.conf redis配置文件
   redis-cli.exe 命令行客户端,测试用
   redis-check-dump.exe 本地数据库检查
   redis-check-aof.exe 更新日志检查
   redis-benchmark.exe 性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 (类似于 Apache的 ab 工具)

安装完成之后,打开redis-server.exe启动redis服务,我们可以打开redis-cli.exe输入指令来测试redis。


linux系统redis安装

下载:http://redis.googlecode.com/files/redis-2.4.13.tar.gz

#tar zxvf redis-2.4.13.tar.gz#cd redis-2.4.13#make && make install#cp /usr/local/software/redis-2.4.13/redis.conf /usr/local/redis/redis.conf#ln -s /usr/local/bin/redis-server /sbin/redis#redis --config=/usr/local/redis/redis/conf

redis.conf配置daemonize为yes,启动redis:

#redis /usr/local/redis/redis.conf


phpredis扩展安装

下载:https://github.com/nicolasff/phpredis/downloads

#tar zvxf nicolasff-phpredis-2.2.1-27-gf8f552e.tar.gz#cd nicolasff-phpredis-2.2.1-27-gf8f552e#phpize#./configure --with-php-config=/usr/local/php/bin/php-config#make#make install
安装完成之后编辑php.ini文件,加入生成的redis.so扩展,重启php-fpm


redis.conf的详细配置参考以下注解

------------------------------------------------------------------------------------------------------------------------------------------
redis.conf配置文件注解(原文地址):
daemonize是否以后台进程运行,默认为no
pidfile如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pid
bind绑定主机IP,默认值为127.0.0.1(注释)
port 监听端口,默认为6379
timeout超时时间,默认为300(秒)
loglevel日志记录等级,有4个可选值,debug,verbose(默认值),notice,warning
logfile日志记录方式,默认值为stdout
databases可用数据库数,默认值为16,默认数据库为0
save<seconds><changes>指出在多长时间内,有多少次更新操作,就将数据同步到数据文件。这个可以多个条件配合,比如默认配置文件中的设置,就设置了三个条件。
save 900 1  900秒(15分钟)内至少有1个key被改变
save 300 10  300秒(5分钟)内至少有300个key被改变
save 60 10000  60秒内至少有10000个key被改变
rdbcompression存储至本地数据库时是否压缩数据,默认为yes
dbfilename本地数据库文件名,默认值为dump.rdb
dir 本地数据库存放路径,默认值为./
slaveof<masterip><masterport>当本机为从服务时,设置主服务的IP及端口(注释)
masterauth<master-password>当本机为从服务时,设置主服务的连接密码(注释)
requirepass连接密码(注释)
maxclients最大客户端连接数,默认不限制(注释)
maxmemory<bytes>设置最大内存,达到最大内存设置后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理后,任到达最大内存设置,将无法再进行写入操作。(注释)
appendonly是否在每次更新操作后进行日志记录,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认值为no
appendfilename更新日志文件名,默认值为appendonly.aof(注释)
appendfsync更新日志条件,共有3个可选值。no表示等操作系统进行数据缓存同步到磁盘,always表示每次更新操作后手动调用fsync()将数据写到磁盘,everysec表示每秒同步一次(默认值)。
vm-enabled是否使用虚拟内存,默认值为no
vm-swap-file虚拟内存文件路径,默认值为/tmp/redis.swap,不可多个Redis实例共享
vm-max-memory将所有大于vm-max-memory的数据存入虚拟内存,无论vm-max-memory设置多小,所有索引数据都是内存存储的(Redis的索引数据就是keys),也就是说,当vm-max-memory设置为0的时候,其实是所有value都存在于磁盘。默认值为0。

----------------------------------------------------------------------------------------
benchmark工具测试信息:
测试命令:
redis-benchmark -n 100000 -c 60
向redis服务器发送100000个请求,每个请求附带60个并发客户端
结果(部分):
====== SET ======
对集合写入测试
  100000 requests completed in 2.38 seconds
100000个请求在2.38秒内完成
  60 parallel clients
每次请求有60个并发客户端
  3 bytes payload
每次写入3个字节的数据
  keep alive: 1
保持一个连接,一台服务器来处理这些请求

93.06% <= 15 milliseconds
99.96% <= 31 milliseconds
99.98% <= 46 milliseconds
99.99% <= 62 milliseconds
100.00% <= 62 milliseconds
所有请求在62毫秒内完成
42105.26 requests per second
每秒处理42105.26次请求

从结果我们可以看到,redis数据库在很高并发的情况下也可以很快速的处理数据并作出响应

文章参考:http://apps.hi.baidu.com/share/detail/20692204

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 上班坐的屁股痛怎么办 膝关节手术后康复膝盖疼怎么办 上下楼膝关节疼膝盖疼怎么办 跑步后关节疼该怎么办 后滚翻翻不过去怎么办 走太多路小腿疼怎么办 踢毽子以后期盖右腿内彻疼怎么办 大学体育选修课挂了怎么办 当天贴的砖踩了怎么办 刚贴的瓷砖踩了怎么办 长胶底板太轻怎么办 乒乓球拍胶皮不粘了怎么办 乒乓球拍子胶片太滑怎么办 新买的包黏黏的怎么办 卫星锅收不到台怎么办 养殖厂被卫星拍住怎么办 中六卫星无信号怎么办 晒出成片的斑怎么办 太阳晒出胳膊上长斑怎么办 宇航员在太空死后怎么办 太阳暴晒起的斑怎么办 太阳晒出来的斑怎么办 被认定D级危房怎么办 突然发现两个关系遥远怎么办 如果没有地球人类会怎么办 小锅盖被屏蔽了怎么办 美的冰箱故障通讯不合格怎么办 美的冰箱通讯不合格怎么办 文明6金币降到0怎么办 紫癜肾炎长期尿潜血怎么办 肾移植后血压高怎么办 尿道长了个肿瘤怎么办 吃了有病的鹅怎么办 狗狗得了乳腺瘤怎么办 孕28周还是臀位怎么办 怀孕五个月胎位不正怎么办 33周了胎位不正怎么办 足月胎儿不足5斤怎么办 绒癌观察期怀孕怎么办 宝宝囱门闭合晚怎么办 慢性硬脑膜下血肿复发怎么办