redis 系列文章:
https://liudongdong.top/categ…
本篇起源:
https://liudongdong.top/archi…
公众号:雨中散步撒哈拉
备注:欢送关注公众号,一起学习,共同进步!
一、近程连贯
1. 下载
关注公众号 雨中散步撒哈拉
,回复关键词020
,进行下载
举荐俩个工具 rdm 或者 another-redis
image.png
2. 连贯
填写近程信息,进行连贯
image.png
another-redis 界面
image.png
rmd 界面
image.png
二、测试性能
Redis 自带一个压测工具 redis-benchmark,有以下可选参数
image.png
1. 进入容器
docker exec -it docker_redis /bin/bash
# 进入容器执行
redis-benchmark -p 6379 -c 100 -n 100000
image.png
2. 查看终端输入
image.png
上半局部代表 100 个并发写入 10w 条数据,每次写入 3 个字节,keep-alive:1 代表服务器数量只有 1 台,并且在没有开启多线程的状况下只花了 2.86s (tips:多线程是 redis 6.0 新增的)
下半局部代表在 42.815ms 内解决实现全副申请
3. 查看检测设施
image.png
三、Redis 基本知识
redis 官网:http://redis.cn/
Redis 是一个基于 C 语言编写的,是可基于内存也可长久化的日志型 K-V 数据库,并提供多种语言的 API。可用作数据库,缓存和消息中间件
Redis 会周期性的把更新的数据写入磁盘或是把批改操作写入到追加的记录文件,并在此基础上实现主从复制
1. Redis 无能啥?
- 反对内存存储和长久化 (EDB / AOF)
- 效率高,反对高并发,能够用做高速缓存
- 能够用于公布 - 订阅模式
- 地图信息剖析
- 计数器,计时器
- 数据类型多样
- 反对集群和事务
- …
2. Redis 根本命令
1. redis 数据库
Redis 默认有 16 个数据库,起始数据库为 0 号,能够应用命令
image.png
切换数据库
select 号数
清空以后数据库
flushdb
革除所有的数据库
flushall
2. redis 中的 key
查看以后数据库所有的 key
keys *
3. Redis 单线程 & 多线程
Redis 在 6.0 之前只是单线程的,6.0 之后则反对多线程了,然而 Redis 在单线程下仍旧很快,这是为什么呢?
其实,严格来说,Redis Server 是多线程的,只是它申请解决的整个流程是单线程解决的,所以所谓的 Redis 单线程快指的是其申请处理过程应用单线程时十分快,其中的起因有以下几点
- 纯内存操作,并且 Redis 是基于 C 编写的
- 应用 IO 多路复用
- 非 CPU 密集型工作
- 单线程带来的劣势
- 没有多线程的上下文切换造成的开销
- 没有访问共享资源加锁造成的开销
Redis 6.0 引入的多线程其实是用来实现申请数据的协定解析,而对于申请解决阶段仍然是单线程排队解决的
4. 题外话
为什么 Redis 抉择 6379 作为端口号?
6379 在手机按键上是 MERZ 对应的号码,而 MERZ 取自意大利女歌手 Alessia Merz 的名字,Redis 作者 Antirez 早年看电视节目,感觉 Merz 在节目中的一些话愚昧可笑,Antirez 喜爱造“梗”用于平时和敌人们交换,于是造了一个词 “MERZ”,形容愚昧,与 “stupid” 含意雷同
起初 Antirez 从新定义了 “MERZ”,形容”具备很高的技术价值,蕴含技能、急躁和劳动,但依然放弃简略实质“
四、RedisKey 的根本命令
创立一个键值对
set key value
删除键值对
del key
查看以后数据库中所有键
keys *
判断是否存在某个键,如果存在则返回 1,否则返回 0
exists key
挪动指定 key 到指定库
move key 库号
为 key 设置过期工夫
expire key 过期工夫 /s
而后应用命令
ttl key
查看该 key 还有多久过期,如果该 key 不会过期则返回 -1,该 key 不存在则返回 -2,否则返回过期工夫的倒计时
查看 key 对应 value 的数据类型
type key