一些有用的链接🔗 #
Redis - 菜鸟教程
Redis Command Doc
常用基础命令语法 #
通过命令help或官网Doc可查询所有命令的帮助
通用 Key 命令 #
| 命令名 | 语法 | 功能说明 |
|---|
DEL | DEL key [key ...] | 删除一个或多个键 |
EXISTS | EXISTS key | 检查键是否存在 |
EXPIRE | EXPIRE key seconds | 设置键的过期时间(秒) |
TTL | TTL key | 查看键的剩余生存时间(秒) |
KEYS | KEYS pattern | 匹配符合模式的键(生产环境慎用) |
TYPE | TYPE key | 获取键存储的数据类型 |
SCAN | SCAN cursor [...] | 遍历对应数据库的所有键 |
RENAME | RENAME key newkey | 重命名键 |
查看更多
字符串 String #
| 命令名 | 语法 | 功能说明 |
|---|
SET | `SET key value [NX | XX]` |
SETEX | SETEX key seconds value | 设置会过期时间的键值对 |
MSET | MSET key1 value1 key2 value2 | 批量设置键值对 |
GET | GET key | 获取键的值 |
| `INCR | DECR` | `INCR |
| `INCRBY | DECRBY` | `INCRBY |
APPEND | APPEND key value | 向字符串尾部追加内容 |
STRLEN | STRLEN key | 获取字符串长度 |
查看更多
哈希 Hash #
| 命令名 | 语法 | 功能说明 |
|---|
HSET | HSET key field value | 设置哈希的字段值 |
HGET | HGET key field | 获取哈希的字段值 |
| `HGETALL | HVALS` | `HGETALL |
HSCAN | HSCAN key cursor [...] | 遍历哈希的字段和值 |
HDEL | HDEL key field [field ...] | 删除哈希的一个或多个字段 |
HINCRBY | HINCRBY key field increment | 对哈希字段的整数值增加指定数值 |
HEXISTS | HEXISTS key field | 检查哈希字段是否存在 |
设置过期时间、自增、字段长度、更多
列表 List #
| 命令名 | 语法 | 功能说明 |
|---|
| `LPUSH | RPUS` | `LPUSH |
| `LPOP | RPOP` | `LPOP |
LINDEX | LINDEX key index | 通过索引获取元素 |
LSET | LSET key index element | 通过索引设置元素 |
LINSERT | `LINSERT key <BEFORE | AFTER> pivot element` |
LRANGE | LRANGE key start stop | 获取列表指定索引范围的元素(0到-1表示全部) |
LTRIM | LTRIM key start stop | 修剪列表保留索引区间 |
LLEN | LLEN key | 获取列表长度 |
查看更多
集合 Set #
| 命令名 | 语法 | 功能说明 |
|---|
SADD | SADD key member [member ...] | 向集合添加一个或多个元素(自动去重) |
SISMEMBER | SISMEMBER key member | 检查元素是否属于集合 |
| `SMEMBERS | SCARD` | `SMEMBERS |
SREM | SREM key member [member ...] | 从集合删除一个或多个元素 |
SSCAN | SSCAN key cursor [MATCH pattern] [COUNT count] | 遍历集合的成语 |
SDIFF | SDIFF key [key ...] | 求多个集合的差集 |
SINTER | SINTER key1 key2 [key ...] | 求多个集合的交集 |
SUNION | SUNION key1 key2 [key ...] | 求多个集合的并集 |
查看更多
有序集合 Sorted Set #
| 命令名 | 语法 | 功能说明 |
|---|
ZADD | ZADD key score member | 向有序集合添加元素 |
| `ZRANGE | ZREVRANGE` | `ZRANGE |
ZINCRBY | ZINCRBY key increment member [...] | 增加元素的分值 |
| `ZRANK | ZREVRANK` | `ZRANK |
ZSCORE | ZSCORE key member | 获取元素分数 |
ZSCAN | ZSCAN key cursor ... | 遍历有序集合元素 |
查看更多
Java 客户端 #
jedis #
官网地址:https://github.com/redis/jedis
maven仓库:https://mvnrepository.com/artifact/redis.clients/jedis
测试代码:
@Test
void jedisPool() {//jedis连接池
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(128); // 最大连接数
poolConfig.setMaxIdle(32); // 最大空闲连接
poolConfig.setMinIdle(0);
try (JedisPool jedisPool = new JedisPool(poolConfig, "localhost", 6379, 1000)/*创建连接池*/) {
try (Jedis jedis = jedisPool.getResource()) {
ScanResult<String> scanResult = jedis.scan("0", new ScanParams().count(10));
System.out.println(scanResult.getResult());
String REDIS_KEY = "user";
Gson gson = new Gson();
UserInfo userInfo = new UserInfo("焕昭君", 18);
jedis.select(0);
jedis.set(REDIS_KEY, gson.toJson(userInfo));
UserInfo getUserInfoFromRedis = gson.fromJson(jedis.get(REDIS_KEY),UserInfo.class);
System.out.println("get:" + getUserInfoFromRedis);
System.out.println("exists:" + jedis.exists(REDIS_KEY));
System.out.println("del:" + jedis.del(REDIS_KEY));
System.out.println("get:" + jedis.get(REDIS_KEY));
}
}
}
@Test
void jedisPing() {
try (Jedis jedis = new Jedis("localhost", 6379)) {//构造对象
//jedis.auth("");//密码校验
System.out.println(jedis.ping());//测试连接
//System.out.println(jedis.info());
assertEquals("PONG", jedis.ping());
}
}
class UserInfo {
private String name;
private int age;
public UserInfo(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "UserInfo{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public boolean equals(Object o) {
if (!(o instanceof UserInfo userInfo)) return false;
return age == userInfo.age && Objects.equals(name, userInfo.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
SpringDataRedis #
配置对应的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency><!--连接池-->
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
对应的配置文件
spring:
data:
redis:
host: localhost # Redis 服务器地址
port: 6379 # Redis 服务器端口
password: # Redis 密码,如果没有密码可以留空
database: 0 # Redis 数据库索引,默认为 0
timeout: 2000 # 连接超时时间,单位为毫秒
lettuce:
pool:
max-active: 8 # 连接池中最大活跃连接数
max-idle: 8 # 连接池中最大空闲连接数
min-idle: 0 # 连接池中最小空闲连接数
max-wait: 1000ms