Redis常用命令
Redis 介绍
Redis 是一种基于键值对(key-value)的数据库,其中 value 可以为 String、Hash、List、 Set、Zset 等多种数据结构,可以满足很多应用场景。还提供了键过期,发布订阅,事务, 流水线,等附加功能。
流水线:Redis 的流水线功能允许客户端一次将多个命令请求发送给服务器, 并将被执行的多个命令请求的结果在一个命令回复中全部返回给客户端,使用这个功能可以有效地减少客户端在执行多个命令时需要与服务器进行通信的次数。
特性
- 速度快,数据放在内存中,官方给出的读写性能 10 万/S,与机器性能也有关
数据放内存中是速度快的主要原因- C 语言实现,与操作系统距离近
- 使用了单线程架构,预防多线程可能产生的竞争问题
- 键值对的数据结构服务器
- 丰富的功能:见上功能
- 简单稳定:单线程
- 持久化:发生断电或机器故障,数据可能会丢失,持久化到硬盘
- 主从复制:实现多个相同数据的 redis 副本
- 高可用和分布式:哨兵机制实现高可用,保证 redis 节点故障发现和自动转移
- 客户端语言多:java php python c c++ nodejs 等
使用场景
- 缓存:合理使用缓存加快数据访问速度,降低后端数据源压力
- 排行榜:按照热度排名,按照发布时间排行,主要用到列表和有序集合
- 计数器应用:视频网站播放数,网站浏览数,使用 redis 计数
- 社交网络:赞、踩、粉丝、下拉刷新
- 消息队列:发布和订阅
安装与启动
环境:linux
可执行文件 | 作用 |
---|---|
redis-server | 启动 redis |
redis-cli | redis 命令行客户端 |
redis-benchmark | 基准测试工具 |
redis-check-aof | AOF 持久化文件检测和修复工具 |
redis-check-dump | RDB 持久化文件检测和修复工具 |
redis-sentinel | 启动哨兵 |
redis-server 启动
默认配置:redis-server
,日志输出版本信息,端口6379
运行启动:redis-server --port 6380
不推荐
配置文件启动:redis-server /opt/redis/redis.conf
灵活,生产环境推荐使用
redis-cli 启动
交互式:redis-cli -h [host] -p [port]
连接到 redis 服务,无 -h [host] 参数默认连接 127.0.0.1,无 -p [port] 参数默认连6379
命令式:redis-cli -h 127.0.0.1 -p 6739 get hello
取 key = hello 的 value
停止服务:redis-cli shutdown
关闭时:断开连接,生成持久化文件,相对安全;使用 kill 关闭不会生成持久化文件,还会造成缓冲区非法关闭,可能会造成 AOF 和丢失数据
常用命令
全局命令
命令 | 功能 |
---|---|
keys * | 查看所有键 |
dbsize | 查看键总数,如果存在大量键,线上禁止使用此命令 |
exists [key] | 查看键是否存在,存在返回1,不存在返回0 |
del [key] | 删除键, 返回删除键的个数,删除不存在的键返回0 |
expire [key] [seconds] | 设置键过期时间 |
ttl [key] | 查看剩余的过期时间 |
type [key] | 查看键的数据结构类型,键不存在返回 none |