美文网首页
redis的基本使用

redis的基本使用

作者: 半日孤独 | 来源:发表于2020-01-20 15:34 被阅读0次

导入依赖

<!--增加redis依赖-->
    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-redis</artifactId>
        </dependency>
      <dependency>
          <groupId>org.springframework.data</groupId>
          <artifactId>spring-data-redis</artifactId>
          <version>1.8.7.RELEASE</version>
      </dependency>
      <dependency>
          <groupId>redis.clients</groupId>
          <artifactId>jedis</artifactId>
          <version>2.9.0</version>
      </dependency>

封装工具类

//redis基本操作
@Component
public class RedisOperator {

    @Autowired
    private StringRedisTemplate redisTemplate;


    // Key(键),简单的key-value操作

    /**
     * 实现命令:TTL key,以秒为单位,返回给定 key的剩余生存时间(TTL, time to live)。
     *
     * @param key
     * @return
     */
    public long ttl(String key) {
        return redisTemplate.getExpire(key);
    }

    /**
     * 实现命令:expire 设置过期时间,单位秒
     *
     * @param key
     * @return
     */
    public void expire(String key, long timeout) {
        redisTemplate.expire(key, timeout, TimeUnit.SECONDS);
    }

    /**
     * 实现命令:INCR key,增加key一次
     *
     * @param key
     * @return
     */
    public long incr(String key, long delta) {
        return redisTemplate.opsForValue().increment(key, delta);
    }

    /**
     * 实现命令:KEYS pattern,查找所有符合给定模式 pattern的 key
     */
    public Set<String> keys(String pattern) {
        return redisTemplate.keys(pattern);
    }

    /**
     * 实现命令:DEL key,删除一个key
     *
     * @param key
     */
    public void del(String key) {
         redisTemplate.delete(key);
    }


    // String(字符串)

    /**
     * 实现命令:SET key value,设置一个key-value(将字符串值 value关联到 key)
     *
     * @param key
     * @param value
     */
    public void set(String key, String value) {
        redisTemplate.opsForValue().set(key, value);
    }

    /**
     * 实现命令:SET key value EX seconds,设置key-value和超时时间(秒)
     *
     * @param key
     * @param value
     * @param timeout (以秒为单位)
     */
    public void set(String key, String value, long timeout) {
        redisTemplate.opsForValue().set(key, value, timeout, TimeUnit.SECONDS);
    }

    /**
     * 实现命令:GET key,返回 key所关联的字符串值。
     *
     * @param key
     * @return value
     */
    public String get(String key) {
        return (String) redisTemplate.opsForValue().get(key);
    }

    // Hash(哈希表)

    /**
     * 实现命令:HSET key field value,将哈希表 key中的域 field的值设为 value
     *
     * @param key
     * @param field
     * @param value
     */
    public void hset(String key, String field, Object value) {
        redisTemplate.opsForHash().put(key, field, value);
    }

    /**
     * 实现命令:HGET key field,返回哈希表 key中给定域 field的值
     *
     * @param key
     * @param field
     * @return
     */
    public String hget(String key, String field) {
        return (String) redisTemplate.opsForHash().get(key, field);
    }

    /**
     * 实现命令:HDEL key field [field ...],删除哈希表 key 中的一个或多个指定域,不存在的域将被忽略。
     *
     * @param key
     * @param fields
     */
    public void hdel(String key, Object... fields) {
        redisTemplate.opsForHash().delete(key, fields);
    }

    /**
     * 实现命令:HGETALL key,返回哈希表 key中,所有的域和值。
     *
     * @param key
     * @return
     */
    public Map<Object, Object> hgetall(String key) {
        return redisTemplate.opsForHash().entries(key);
    }

    // List(列表)

    /**
     * 实现命令:LPUSH key value,将一个值 value插入到列表 key的表头
     *
     * @param key
     * @param value
     * @return 执行 LPUSH命令后,列表的长度。
     */
    public long lpush(String key, String value) {
        return redisTemplate.opsForList().leftPush(key, value);
    }

    /**
     * 实现命令:LPOP key,移除并返回列表 key的头元素。
     *
     * @param key
     * @return 列表key的头元素。
     */
    public String lpop(String key) {
        return (String) redisTemplate.opsForList().leftPop(key);
    }

    /**
     * 实现命令:RPUSH key value,将一个值 value插入到列表 key的表尾(最右边)。
     *
     * @param key
     * @param value
     * @return 执行 LPUSH命令后,列表的长度。
     */
    public long rpush(String key, String value) {
        return redisTemplate.opsForList().rightPush(key, value);

    }

工具类简单使用

    @Autowired
    private RedisOperator redis;
    /**
     *增加数据
     * key---主键
     * result.getResult---值(我这里使用得是list)
     * 180表示过期时间
     */
     redis.set(key,JSONObject.toJSONString(result.getResults()),180);
     //获取数据
     String value =  redis.get(key);
     List<errBean> list = JSONObject.parseArray(value, errBean.class);
     //移除数据
     redis.del(key);

错误信息

//删除key遇到这样的错误一般都是spring-boot-starter-redis和spring-data-redis版本不一致导致的,换成相匹配的版本就可以了
org.springframework.data.redis.core.StringRedisTemplate.delete(Ljava/lang/boolean)

相关文章

  • Python客户端redis-py

    1.获取redis-py 使用pip进行安装: pip install redis 2.redis-py的基本使用...

  • Redis基本使用

    Redis数据库 Redis 是一个高性能的key-value数据库 主要用Redis实现缓存数据的存储,可以设置...

  • Redis基本使用

    去年大概九月份时,使用Scrapy+Redis实现分布式爬取数据,然后接触到Redis,并查看源码了解到Redis...

  • redis基本使用

    redis安装与启动 客户端工具Redis-cli 连接redis redis的数据表使用数字为表号,默认表为16...

  • redis 基本使用

    什么是redis 键值类型 String字符类型 map散列类型 list列表类型 set 集合类型 有序集合类型...

  • Redis基本使用

    安装 下载并安装$ wget http://download.redis.io/releases/redis-6....

  • redis基本使用

    一.redis基本使用 神作:https://blog.51cto.com/linuxg/1862040https...

  • Redis基本使用

    客户端连接 无密码 : redis-cli 有密码 : redis-cli -a 密码 php连接redis $r...

  • Redis基本使用

    安装 gcc c++ yum install gcc-c++ redis5.0版本 https://downloa...

  • Redis的基本使用

    什么是Redis? 根据百度百科介绍: Redis 是一个高性能的key-value数据库。 redis的出现,很...

网友评论

      本文标题:redis的基本使用

      本文链接:https://www.haomeiwen.com/subject/uimjzctx.html