一、简介
定义:Redis是用C语言开发的开源的高性能的键值对非关系型数据库。
特点:
- 数据间没有必然的关联关系
- 内部采用单线程机制进行工作
- 读写速度快,高性能
- 多数据类型支持
- 持久化支持,能够进行数据灾难性恢复
Redis是单线程吗?
Redis 的单线程主要是指 Redis 的网络 IO 和键值对读写是由一个线程来完成的,这也是 Redis 对外 提供键值存储服务的主要流程。但 Redis 的其他功能,比如持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。
Redis 单线程为什么还能这么快?
因为它所有的数据都在内存中,所有的运算都是内存级别的运算,而且单线程避免了多线程的切换性 能损耗问题。
二、基本操作
key操作
- 删除指定key:del key
- 获取key是否存在:exists key
- 获取key的类型:type key
- 设置key有效期:
①expire key seconds (精确到秒)
②pexpire key milliseconds (精确到毫秒)
③expireat key timestamp (精确到秒)
④pexireat key timestamp (精确到毫秒) - 获取key的有效时间 (如果没设置有效期返回-1,过了有效期返回-2):
①tt1 key
②pttl key - 切换key从有效期转换为永久性:persist key
- 查询key:keys pattern
①* 匹配任意数量任意符号
②?匹配一个任意符号
③[] 匹配一个指定符号 - 为key改名:
①rename key newkey (newkey存在则覆盖)
②renamenx key newkey (newkey存在则返回0) - 对所有key排序(只排序,不改存储):sort
- 其他key通用操作:help @generic
db操作
- 切换数据库:select index (redis为每个服务提供16个数据库,编号从0到15,可以解决key重复问题)
- 数据移动:move key db
- 获取当前数据库keys数量:dbsize
- 清除数据:
①flushall (清除所有数据库数据)
②flushdb (清除当前数据库数据)
其他操作
- quit
- ping
- echo message(打印给定的字符串)