1、Redis概述
Redis是什么: Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 免费开源!最热门的NoSQL技术之一!
redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。读的速度是110000次/s,写的速度是81000次/s 。
Redis的作用:
- 内容存储、持久化(rdb、aof);
- 效率高,可用于高速缓存;
- 发布订阅系统;
- 地图信息分析;
- 计时、计数器;
- …
Redis特性:
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
2、Redis安装
2.1、windows下安装
- 官网下载安装包http://www.redis.cn/;
- 下载后解压得到的压缩包;
- 开启Redis:双击exe文件,运行服务即可(默认端口号6379);
- 使用redis客户端连接Redis,可以使用ping命令测试一下!
windows下使用很简单,但是Redis推荐使用Redis来开发!
2.2、Linux下安装
- 官网下载安装包http://www.redis.cn/;
- 解压Redis安装包;
- 进入目录,查看:
- 基本的环境安装:
yum install gcc-c
make
默认安装路径是/usr/local/下 6. redis不是默认后台启动的,需要求改一下配置文件:
daemonize后面的no改为yes。 7. 启动redis服务
代码语言:javascript复制redis-server redis.conf
代码语言:javascript复制redis-cli -p 6379
- 基本命令测试连同
9.关闭redis服务
3、redis-benchmark 性能测试
Redis 自带了一个叫 redis-benchmark 的工具来模拟 N 个客户端同时发出 M 个请求。 (类似于 Apache ab 程序)。你可以使用 redis-benchmark -h 来查看基准参数。
代码语言:javascript复制以下参数被支持:
Usage: redis-benchmark [-h <host>] [-p <port>] [-c <clients>] [-n <requests]> [-k <boolean>]
-h <hostname> Server hostname (default 127.0.0.1)
-p <port> Server port (default 6379)
-s <socket> Server socket (overrides host and port)
-a <password> Password for Redis Auth
-c <clients> Number of parallel connections (default 50)
-n <requests> Total number of requests (default 100000)
-d <size> Data size of SET/GET value in bytes (default 2)
-dbnum <db> SELECT the specified db number (default 0)
-k <boolean> 1=keep alive 0=reconnect (default 1)
-r <keyspacelen> Use random keys for SET/GET/INCR, random values for SADD
Using this option the benchmark will expand the string __rand_int__
inside an argument with a 12 digits number in the specified range
from 0 to keyspacelen-1. The substitution changes every time a command
is executed. Default tests use this to hit random keys in the
specified range.
-P <numreq> Pipeline <numreq> requests. Default 1 (no pipeline).
-q Quiet. Just show query/sec values
--csv Output in CSV format
-l Loop. Run the tests forever
-t <tests> Only run the comma separated list of tests. The test
names are the same as the ones produced as output.
-I Idle mode. Just open N idle connections and wait.
我们可以简单测试一下:
代码语言:javascript复制redis-benchmark -h localhost -p 6379 -c 100 -n 100000
可以看出: 100000并发、100个并发客户端,每次写如3字节,一台服务器 所有请求在8毫秒内处理完成!! 每秒处理125156.45次请求!!!