redis | 三、redis基本知识
redis系列文章: https://liudongdong.top/categories/redis 本篇来源: https://liudongdong.top/archives/redissan-redis-ji-ben-zhi-shi 公众号:雨中散步撒哈拉 备注:欢迎关注公众号,一起学习,共同进步!
一、远程连接
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
--- EOF ---
相关文章
- 深入浅出 超详细 从 线程锁 到 redis 实现分布式锁(篇节 1)
- 揭秘Redis默认密码的真相(redis默认的密码)
- 策略处理Java对象过期策略的Redis实践(redisjava过期)
- 数据解决Java程序中Redis过期数据问题(redisjava过期)
- 如何使用yum命令卸载redis?(yum卸载redis)
- 解决Redis连接超时问题(redis连接超时时间)
- 利用Redis实现MySQL数据同步(redis同步mysql)
- Redis关闭指令:简单而快速(redis关闭命令)
- 如何快速连接Redis服务器(怎么连接redis服务器)
- 微赞用户如何高效配置Redis(微赞配置 redis)
- 突破极限最新Redis版本登场(最新的redis版本)
- 失效当Redis缓存无效,怎么办(什么情况下redis缓存)
- 解决不能获取Redis连接的问题(不能获取redis连接)
- ZK与Redis实现零延迟秒级数据存储(zk和redis)
- 基于TCP与Redis的认证机制(tcp_redis认证)
- 通过Shell脚本管理Redis数据库(shell打开redis)
- 如何使用Redis缓存查询(怎么查redis缓存)
- 启动成功Redis 7728端口开启了(启动redis 7728)
- 从Redis压缩到列表优化性能体验(压缩列表 redis)
- 本笔记本里的Redis千峰之旅(千峰redis笔记)
- Redis默认实现自动删除过期键(redis默认删除过期键)
- 重新开始Redis雪崩游戏(redis雪崩游戏)
- Redis集群不同之处(redis集群区别)
- 构建基于Vue与Redis的高性能缓存系统(VUE redis缓存)
- 使用Redis配置实现高效存储(redis 配置 存储)
- Redis返回数据乱码解决方案(redis返回数据乱码)
- Redis运行记录记录自己的进步(redis运行日记)
- Redis实现浏览记录的储存(redis记录浏览记录)
- 简化运维,快速建立Redis运维框架(redis 运维框架)
- 利用Redis缓存实现拦截器的深入研究(redis缓存拦截器)