0
点赞
收藏
分享

微信扫一扫

redis的string类型用法

花海书香 2022-04-29 阅读 54
redis

redis的string类型用法

命令语法说明
setSET key value [EX seconds] [PX milliseconds] [NX|XX]将字符串值关联到 key
getGET key返回所关联的字符串值
appendAPPEND key value如果 key已经存在并且是一个字符串,将 value追加到 key原来的值的末尾。如果 key 不存在, APPEND就简单地将给定key设为value ,就像执行 SET key value 一样
strlenSTRLEN key返回所储存的字符串值的长度
incrINCR keykey 中储存的数字值增一
decrDECR keykey 中储存的数字值减一
incrbyINCRBY key incrementkey 所储存的值加上增量 increment
decrbyDECRBY key decrementkey 所储存的值减去减量 decrement
getrangeGETRANGE key start end返回 key 中字符串值的子字符串,字符串的截取范围由 startend 两个偏移量决定(包括 startend 在内)
setrangeSETRANGE KEY_NAME OFFSET VALUE用指定的字符串覆盖给定 key 所储存的字符串值,覆盖的位置从偏移量 offset 开始。
setexSETEX KEY_NAME TIMEOUT VALUE为指定的 key 设置值及其过期时间
setnxSETNX KEY_NAME VALUE在指定的 key 不存在时,为 key 设置指定的值
msetMSET key1 value1 key2 value2 … keyN valueN同时设置一个或多个 key-value 对
mgetMGET KEY1 KEY2 … KEYN所有(一个或多个)给定 key 的值
msetnxMSETNX 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);
    }
}
举报

相关推荐

0 条评论