概述
- redis 是一个 开源 的 key-value 存储系统
- 支持的value类型相比memcache更多,比如:string(字符串)、list(链表)、set(集合)、zset(有序集合)和hash(哈希类型)
- 这些数据都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而这些操作都是原子性的。
- 在此基础上,Redis支持各种不同方式的 排序
- 与memecache一样,为了效率,数据都 缓存在内存 中
- 区别的是redis会 周期性 的吧更新的 数据写入磁盘 或者把修改操作写入追加的记录文件
- 在此基础上,实现了 master-slave(主从) 同步
应用场景
配合关系型数据库做高速缓存
- 高频词,热门访问的数据,降低数据库IO
- 分布式架构做session共享
多样的数据结构存储持久化
安装
https://blog.csdn.net/weixin_45965432/article/details/120813173
文件构成
windows安装
双击运行服务即可
使用redis客户端来连接redis
ping->pong : 连接成功
windows下使用简单,但是redis推荐使用linux开发
linux安装
- 下载安装包 redis-5.0.8.tar.gz
- 解压redis的安装包
- 进入解压后的文件,可以看到redis的配置文件
-
基本的环境安装
yum install gcc-c++ make make install
-
redis默认安装路径
usr/local/bin
-
将redis配置文件复制到当前目录下
cp /opt/redis-6.2.6/redis.conf myconfig/
-
redis默认不是后台启动,修改配置文件!
vim redis.conf
-
启动redis服务
通过指定的配置文件启动服务
-
使用redis-cli -p 6379 进行测试连接
-
查看redis的进程是否开启
-
如何关闭redis服务
redis-3 性能测试
redis-benchmark 是一个压力测试工具!
官方自带的性能测试工具!
redis-benchmark 命令参数!
我们简单测试下:
# 测试:100个并发连接 100000请求
redis-benchmark -h ip -p 6379 -c 100 -n 100000 -a 密码
如何查看分析
redis-4 基础知识
redis默认有16个数据库,默认使用第0个
可以使用select进行切换
例:切换到第三个 select
127.0.0.1:6379> select 3 #切换数据库
OK
127.0.0.1:6379[3]> dbsize #本数据库大小
(integer) 0
127.0.0.1:6379[3]> set name lmk #设置值
OK
127.0.0.1:6379[3]> DBSIZE
(integer) 1
127.0.0.1:6379> select 7 #切换到7号数据库
OK
127.0.0.1:6379[7]> DBSIZE
(integer) 0
清楚当前数据库
flushdb
127.0.0.1:6379[3]> flushdb #清除当前数据库
OK
127.0.0.1:6379[3]> keys *
(empty array)
清楚全部数据库
flushall
127.0.0.1:6379[3]> flushall
OK
redis是单线程!
redis是很快的,是基于内存操作的,cpu不是性能瓶颈,redis的瓶颈是根据机器的内存和网络带宽,既然可以用单线程,就用单线程
为什么单线程这么快?
redis是c语言写的,官方提供为100000+的QPS(每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力),这个不比memcache差
速度:cpu>内存>硬盘
核心:redis是将所有的数据放在内存中的,所以单线程去操作就是最高的,因为多线程会出现上下文切换,是个耗时操作。对内存来说,没有上下文切换效率就是最高的!多次读写在一个cpu上的,内存情况下,这就是最佳方案。