redis 简介及安装

redis 简介

Redis 是完全开源免费的,遵守BSD协议,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件,是一个高性能的key-value数据库。

Redis 特点:

1、Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
2、Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
3、Redis支持数据的备份,即master-slave模式的数据备份。

Redis 优势:

1、性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
2、丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。
3、原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
4、丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。

redis 安装

环境: CentOS release 6.5 (Final)

下载并安装:

## 下载
wget http://download.redis.io/releases/redis-3.0.6.tar.gz

## 解压并安装
tar zxf redis-3.0.6.tar.gz
cd redis-3.0.6
make && make install

## 检查bin文件 及 版本(默认bin文件路径为 /usr/local/bin/ ,也可以在编译时候加上 --prefix 参数自定义目录)
[root@vm200-78 ~]# ll /usr/local/bin/redis*
-rwxr-xr-x 1 root root 4589115 Feb 23 15:07 /usr/local/bin/redis-benchmark
-rwxr-xr-x 1 root root   22177 Feb 23 15:07 /usr/local/bin/redis-check-aof
-rwxr-xr-x 1 root root   45395 Feb 23 15:07 /usr/local/bin/redis-check-dump
-rwxr-xr-x 1 root root 4698322 Feb 23 15:07 /usr/local/bin/redis-cli
lrwxrwxrwx 1 root root      12 Feb 23 15:07 /usr/local/bin/redis-sentinel -> redis-server
-rwxr-xr-x 1 root root 6471190 Feb 23 15:07 /usr/local/bin/redis-server
[root@vm200-78 ~]# /usr/local/bin/redis-server -v
Redis server v=3.0.6 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=a1df4a293d9213e9

redis 配置

redis 的配置文件,可以查看刚刚下载及编译目录的 redis.conf 默认文件,里面有详细的注释!

这里创建一个目录 /data/nosql/redis_4500 , 及一个配置文件 /data/nosql/redis_4500/redis.conf ;

监听端口及ip : 192.168.16.24:4500

缓存大小: 2048 MB

[root@vm200-78 ~]# mkdir -p /data/nosql/redis_4500
## 查看配置文件
[root@vm200-78 ~]# cat /data/nosql/redis_4500/redis.conf
daemonize yes
pidfile "/data/nosql/redis_4500/redis.pid"
port 4500   ## 端口
bind 192.168.16.24  ## ip
timeout 0
loglevel warning
logfile "/data/nosql/redis_4500/redis.log"
databases 16
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump.rdb"
dir "/data/nosql/redis_4500"
slave-serve-stale-data yes
slave-read-only yes
slave-priority 100
maxmemory 2048mb   ## 缓存大小
maxmemory-policy allkeys-lru
appendonly no
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
hash-max-ziplist-entries 1024
hash-max-ziplist-value 2048
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
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60

## 启动
[root@vm200-78 ~]# /usr/local/bin/redis-server /data/nosql/redis_4500/redis.conf
[root@vm200-78 ~]# netstat -ntlp 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      3726/nginx          
tcp        0      0 0.0.0.0:22                0.0.0.0:*                   LISTEN      1736/sshd           
tcp        0      0 192.168.16.24:4500          0.0.0.0:*                   LISTEN      18846/redis-server

redis 读写

## 简单测试 set 和 get 一个key 
[root@vm200-78 ~]#  redis-cli -h 192.168.16.24 -p 4500 set huangdc "good"
OK
[root@vm200-78 ~]#  redis-cli -h 192.168.16.24 -p 4500 get huangdc
"good"

好了,,我们最后来看看 redis 的压测性能数据

redis 压测

我们先来看看 redis 自带的测试工具 redis-benchmark

语法:

redis-benchmark [option] [option value]
序号 选项 描述 默认值
1 -h 指定服务器主机名 127.0.0.1
2 -p 指定服务器端口 6379
3 -s 指定服务器 socket  
4 -c 指定并发连接数 50
5 -n 指定请求数 10000
6 -d 以字节的形式指定 SET/GET 值的数据大小 2
7 -k 1=keep alive 0=reconnect 1
8 -r SET/GET/INCR 使用随机 key, SADD 使用随机值  
9 -P 通过管道传输 <numreq> 请求 1
10 -q 强制退出 redis。仅显示 query/sec 值  
11 –csv 以 CSV 格式输出  
12 -l 生成循环,永久执行测试  
13 -t 仅运行以逗号分隔的测试命令列表。  
14 -I Idle 模式。仅打开 N 个 idle 连接并等待。  

redis服务器配置:(测试机一致)

CPU 数量:2个

型号:Intel E5-2407 4核 2.2Ghz

内存:32G

网卡速度: 1000Mb/s

测试数据:

默认字节数 2 和 默认并发数 50

内网测试 set 和 get 性能:

redis_内网压测

本机测试 set 和 get 性能:

redis_本机测试

1、在内网对 redis 进行set 和 get 压测 , 每秒读取达到 60000条,每秒存储达到 60000条

2、在本机对 redis 进行set 和 get 压测 , 每秒读取达到 80000条,每秒存储达到 70000条

所以,redis 受网络影响也非常大,本机压测性能提升 20%-30% (网络带宽和延迟常常是直接影响性能)

还有一个原因(cpu的高速有大缓存也许也是决定因素)(未测试)

也许本机性能还有优化空间,redis官网测试读写才能到10万左右(官网数据)

转载请注明:Huangdc » redis 简介及安装

results matching ""

    No results matching ""