redis的string类型用法
命令 | 语法 | 说明 |
---|---|---|
set | SET key value [EX seconds] [PX milliseconds] [NX|XX] | 将字符串值关联到 key |
get | GET key | 返回所关联的字符串值 |
append | APPEND key value | 如果 key已经存在并且是一个字符串,将 value追加到 key原来的值的末尾。如果 key 不存在, APPEND就简单地将给定key设为value ,就像执行 SET key value 一样 |
strlen | STRLEN key | 返回所储存的字符串值的长度 |
incr | INCR key | 将 key 中储存的数字值增一 |
decr | DECR key | 将 key 中储存的数字值减一 |
incrby | INCRBY key increment | 将 key 所储存的值加上增量 increment |
decrby | DECRBY key decrement | 将 key 所储存的值减去减量 decrement |
getrange | GETRANGE key start end | 返回 key 中字符串值的子字符串,字符串的截取范围由 start 和 end 两个偏移量决定(包括 start 和 end 在内) |
setrange | SETRANGE KEY_NAME OFFSET VALUE | 用指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始。 |
setex | SETEX KEY_NAME TIMEOUT VALUE | 为指定的 key 设置值及其过期时间 |
setnx | SETNX KEY_NAME VALUE | 在指定的 key 不存在时,为 key 设置指定的值 |
mset | MSET key1 value1 key2 value2 … keyN valueN | 同时设置一个或多个 key-value 对 |
mget | MGET KEY1 KEY2 … KEYN | 所有(一个或多个)给定 key 的值 |
msetnx | MSETNX key1 value1 key2 value2 … keyN valueN | 用于所有给定 key 都不存在时,同时设置一个或多个 key-value 对 |
keys * 返回满足匹配的所有key
del key1 key2 删除指定的key
exists key1 判断key1是否存在,存在1,否则0
type key1 返回key1的数据类型
expire key seconds 指定key的存活时间秒
ttl key 查看key的剩余生命
persist key 清楚生存时间
select 0|2|-15 选择数据库
dbsize 返回当前库的key数量
flushdb 清空当前数据库
flushall 清空所有数据库
依赖
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.15.RELEASE</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.1.15.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.4</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
</dependency>
</dependencies>
java语言操作redis中的数据
package com.ujiuye.test;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ujiuye.domain.Account;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import java.util.ArrayList;
import java.util.List;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class JedisDemo {
@Autowired
private JedisPool pool;
@Test
//测试
public void test1(){
Jedis jedis = pool.getResource();//获取核心操作对象
jedis.set("mystr1","ujiuye");//jedis的方法名和redis的命令名成完全一致的
jedis.close();
}
@Test
//将一些对象信息保存到redis中,一般把对象转为JSON
public void saveObj2Redis() throws Exception{
List<Account> accounts = new ArrayList<Account>();
accounts.add(new Account(1,"888",10000f));
accounts.add(new Account(2,"999",10000f));
//将对象转为json
String json = new ObjectMapper().writeValueAsString(accounts);
Jedis jedis = pool.getResource();
jedis.set("accounts",json);
jedis.close();
}
@Test
//从redis中取出对象
public void readAccountsFromRedis() throws Exception{
Jedis jedis = pool.getResource();
String json = jedis.get("accounts");
jedis.close();
//转为对象
List<Account> list = new ObjectMapper().readValue(json, List.class);
System.out.println(list);
}
}