## 一、通用指令
### 1 、key的通用操作
- 删除指定key
```bash
del key
```
- 获取key是否存在
```bash
exists key
```
- 获取key的类型
```bash
type key
```
- 为key设置有效期
```bash
expire key seconds #设置key的有效期为seconds秒
pexpire key milliseconds #设置key的有效期为milliseconds毫秒
expireat key timestamp #设置key的实效实现为时间戳timestamp
pexpireat key milliseconds-timestamp #设置毫秒时间戳
```
- 获取key的有效时间
```bash
ttl key #返回结果为-1:永久的key;返回结果为 > -1: key存活的时间,单位为秒;返回结果为-2:key不存在
pttl key #单位为毫秒
```
- 切换key从时效转换为永久性
```bash
persist key
```
- 查询key
```bash
keys pattern #patern:查询条件
```
*:匹配任意数量的任意字符
?:匹配一个任意字符
[]:匹配一个字符集中的任意一个字符,例如[sdf]指匹配s或d或f
- 为key改名
```bash
rename key newkey #如果newkey存在,则直接覆盖原先的值
renamenx key newkey #如果newkey存在,则改名执行失败
```
- 对key中所有值排序
```bash
sort key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] #对key中的值排序,这里的key为list或set,排序后不会修改原始数据
```
- 其他key通用操作
```bash
help @generic #查看指令用法
```
### 2、数据库通用操作
在redis中如果定义大量的key,难免会出现重复key的情况,为了避免这种情况,redis为每一个服务提供了16个数据库,编号从0到15,每个数据库之间的数据相互独立。

- 切换数据库
```bash
select index #index:表示数据库编号(0-15),默认为0
```
- 数据移动
```bash
move key db #将当前库中的key在移动到编号为db的目标数据库中(当前数据库中的key会消失)
```
- 数据清除
```bash
dbsize # 查看当前数据库中的key的数量
flushdb # 删除当前数据库中的数据
flushall # 删除所有数据库中的数据
```
- 其他操作
```bash
ping # 测试redis服务是否启动
echo message # 测试服务器
```
## 二、Jedis
### 1、Jedis简介
[Jedis](https://github.com/xetorthio/jedis)是Redis官方推荐的Java连接开发工具。它是一个非常小而高效的Redis Java客户端,并且易于使用。
### 2、Java使用Jedis
- 准备工作
- jar包导入
下载地址:[https://github.com/xetorthio/jedis](https://github.com/xetorthio/jedis)
- 基于Maven,导入依赖
```xml
<!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.3.0</version>
</dependency>
```
- 使用步骤
- 链接Redis
```java
Jedis jedis = new Jedis("host", port);
```
- 操作Redis
```java
jedis.set("name", "maintiao");
...
```
- 关闭链接
```java
jedis.close();
```
### 3、Jedis连接池
**JedisPool**:Jedis提供的连接池技术。
该连接池的主要参数有:
- poolConfig:连接池配置对象(GenericObjectConfig)
- host:redis服务地址(String)
- port:redis服务端口号(int)
```java
public JedisPool(GenericObjectPoolConfig poolConfig, String host, int port) {
this(poolConfig, (String)host, port);
}
```
调用JedisPool实例化对象的getResource()方法就可以获取一个Jedis链接。
### 4、Redis可视化客户端
**Redis Desktop Manager**:


Redis学习笔记(二)