Redis背景及其安装

NoSQL的四大分类

KV键值对

  • 新浪:Redis
  • 美团:Redis + Tair
  • 阿里、百度:Redis + Memcache


文档型数据库(bson格式 和json类似)

  • MongoDB(一般必须掌握)
  • 是一种基于分布式文件存储的数据库,由C++编写,主要用来处理大量的文档
  • MongoDB是一种介于关系型数据库和关系型数据库的产品,MongoDB是非关系型数据库中功能最丰富最像关系型数据库的
  • ConthDB


列存储数据库

  • HBase
  • 分布式文件系统


图关系数据库

  • 不是用来放图片的,而是用来存放关系的:朋友圈社交网络,广告推荐
  • Neo4j ,InfoGrid

在这里插入图片描述

四者对比

 四种类型对比


Redis入门 

概述

  • Redis(Remote Dictionary Server),远程字典服务。是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
  • 区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
  • “免费” “开源” “当下最热门的NoSQL技术之一,也被人们称为结构化数据库”
  • 支持语言

官方介绍:Redis中文文档

Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串哈希表列表集合有序集合位图hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区

Redis能干什么

  • 内存存储,持久化
    • 内存中几乎是断电即失的,所以说持久化很重要
    • Redis中持久化的两种机制:RDB、AOF
  • 效率高,用于高速缓存
  • 发布订阅系统
  • 地图信息分析
  • 计时器,计数器(统计浏览量等)

特性

  1. 多样的数据类型
  2. 持久化
  3. 集群
  4. 事务

Redis下载

(Windows环境)下载

Releases · microsoftarchive/redis · GitHub

连接Redis服务器(Windows)

 Redis(Linux环境)下载

参考:Linux 环境安装【jdk、Tomcat、Docker、Maven、Kafka、Redis等】_尒轩窗的博客-CSDN博客

重要文件: 

文件作用
redis-benchmark测试性能
redis-check-aof检查AOF持久化 (Redis支持两种持久化方式,RDB / AOF)
redis-server启动服务
redis-cli客户端

 查找文件地址命令:

[root@localhost ~]# whereis redis-cli #查找redis-cli
redis-cli: /usr/bin/redis-cli /usr/share/man/man1/redis-cli.1.gz
[root@localhost ~]# whereis redis-server
redis-server: /usr/bin/redis-server /usr/share/man/man1/redis-server.1.gz
[root@localhost ~]# whereis redis.conf
redis: /etc/redis.conf

可通过自定义配置文件启动redis-server

[root@localhost ~]# whereis redis #寻找redis.conf位置
redis: /etc/redis.conf
[root@localhost ~]# whereis redis-server  #寻找redis-server位置
redis-server: /usr/bin/redis-server /usr/share/man/man1/redis-server.1.gz
[root@localhost ~]# cd /usr/bin/   #定位到redis-server所在文件
[root@localhost bin]# mkdir lmlRedisConfig  #创建文件,以存储自定义配置
[root@localhost bin]# mv /etc/redis.conf lmlRedisConfig/  #将配置文件移到新目录
[root@localhost bin]# cd lmlRedisConfig/
[root@localhost lmlRedisConfig]# vim redis.conf #修改配置

[root@localhost bin]# redis-server lmlRedisConfig/redis.conf  #后台启动服务器
[root@localhost bin]# redis-cli -p 6379 #客户端连接
127.0.0.1:6379> ping  
PONG
127.0.0.1:6379> set name lml
OK
127.0.0.1:6379> get name
"lml"
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379> shutdown  #关闭连接
not connected> exit


可通过命令 ps -ef|grep redis 查询redis是否运行


redis-benchmark性能测试

语法

redis 性能测试的基本命令如下:

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-k1=keep alive 0=reconnect1
8-rSET/GET/INCR 使用随机 key, SADD 使用随机值
9-P通过管道传输 <numreq> 请求1
10-q强制退出 redis。仅显示 query/sec 值
11--csv以 CSV 格式输出
12-l生成循环,永久执行测试
13-t仅运行以逗号分隔的测试命令列表。
14-IIdle 模式。仅打开 N 个 idle 连接并等待。

测试命令

redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush -n 100000 -q

结果 

  命令2

redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 100000

结果:

====== PING_INLINE ======
  100000 requests completed in 2.32 seconds
  100 parallel clients
  3 bytes payload
  keep alive: 1

10.32% <= 1 milliseconds
83.33% <= 2 milliseconds
94.91% <= 3 milliseconds
98.17% <= 4 milliseconds
98.99% <= 5 milliseconds
99.54% <= 6 milliseconds
99.80% <= 7 milliseconds
99.90% <= 8 milliseconds
99.90% <= 11 milliseconds
99.96% <= 12 milliseconds
100.00% <= 12 milliseconds
43084.88 requests per second

====== PING_BULK ======
  100000 requests completed in 2.52 seconds
  100 parallel clients
  3 bytes payload
  keep alive: 1

9.42% <= 1 milliseconds
74.28% <= 2 milliseconds
91.01% <= 3 milliseconds
96.21% <= 4 milliseconds
98.27% <= 5 milliseconds
99.39% <= 6 milliseconds
99.88% <= 7 milliseconds
100.00% <= 7 milliseconds
39714.06 requests per second

====== SET ======
  100000 requests completed in 2.38 seconds  # 100000个请求在2.38s完成
  100 parallel clients  # 100个并发客户端
  3 bytes payload  # 默认每次写入3个字节(可修改)
  keep alive: 1  # 只有一台服务器来处理这些请求:测试的是单机性能

8.10% <= 1 milliseconds
80.11% <= 2 milliseconds
93.54% <= 3 milliseconds
97.84% <= 4 milliseconds
99.20% <= 5 milliseconds
99.75% <= 6 milliseconds
99.92% <= 7 milliseconds
100.00% <= 7 milliseconds
41946.31 requests per second  # 每秒处理41946.31 个请求

====== GET ======

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值