redis系列文章: https://liudongdong.top/categories/redis 本篇来源: https://liudongdong.top/archives/redissan-redis-ji-ben-zhi-shi 公众号:雨中散步撒哈拉 备注:欢迎关注公众号,一起学习,共同进步!
关注公众号雨中散步撒哈拉
,回复关键词020
,进行下载
推荐俩个工具rdm或者another-redis
image.png
填写远程信息,进行连接
image.png
another-redis界面
image.png
rmd界面
image.png
Redis 自带一个压测工具 redis-benchmark,有以下可选参数
image.png
docker exec -it docker_redis /bin/bash
# 进入容器执行
redis-benchmark -p 6379 -c 100 -n 100000
image.png
image.png
上半部分代表 100 个并发写入 10w 条数据,每次写入 3 个字节,keep-alive:1 代表服务器数量只有 1 台,并且在没有开启多线程的情况下只花了 2.86s ( tips:多线程是 redis 6.0 新增的 )
下半部分代表在 42.815ms 内处理完成全部请求
image.png
redis官网:http://redis.cn/
Redis 是一个基于 C 语言编写的,是可基于内存也可持久化的日志型 K-V 数据库,并提供多种语言的 API。可用作数据库,缓存和消息中间件
Redis 会周期性的把更新的数据写入磁盘或是把修改操作写入到追加的记录文件,并在此基础上完成主从复制
Redis 默认有 16 个数据库,起始数据库为 0 号,可以使用命令
image.png
切换数据库
select 号数
清空当前数据库
flushdb
清除所有的数据库
flushall
查看当前数据库所有的 key
keys *
Redis 在 6.0 之前只是单线程的,6.0 之后则支持多线程了,但是 Redis 在单线程下依旧很快,这是为什么呢?
其实,严格来说,Redis Server 是多线程的,只是它请求处理的整个流程是单线程处理的,所以所谓的 Redis 单线程快指的是其请求处理过程使用单线程时非常快,其中的原因有以下几点
Redis 6.0 引入的多线程其实是用来完成请求数据的协议解析,而对于请求处理阶段依然是单线程排队处理的
为什么 Redis 选择 6379 作为端口号?
6379 在手机按键上是 MERZ 对应的号码,而 MERZ 取自意大利女歌手 Alessia Merz 的名字,Redis 作者 Antirez 早年看电视节目,觉得 Merz 在节目中的一些话愚蠢可笑,Antirez 喜欢造“梗”用于平时和朋友们交流,于是造了一个词 "MERZ",形容愚蠢,与 "stupid" 含义相同
后来 Antirez 重新定义了 "MERZ" ,形容”具有很高的技术价值,包含技艺、耐心和劳动,但仍然保持简单本质“
创建一个键值对
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
--- EOF ---