zoukankan      html  css  js  c++  java
  • Redis 命令

    Redis(NoSql) redis-cli

    常用的命令
    • set: 存储数据
      set key value
    • get: 取出数据
      get key
    • del:删除数据
      del key
    • append: 追加字符
      append key value
    • strlen: 获取字符的长度
      strlen key
    • incr: 将指定key的value加一(value 的类型是 intrger)
      incr key
    • decr: 将指定key的value减一
      decr key
    • incrby: 将指定key的value增加指定的量
      incrby key num
    • decrbr: 将指定key的value减少指定的量
      decrby key num
    • setrange: 替换指定key的value的一部分(offset 偏移量)
      setrange key offset value
    • getrange: 获取指定key的value的一部分 [strNum,endNum](获取到末尾的话 endNum=-1)
      getrange key startNum endNum
    list(有序可重复)
    • lpush: 从列表左边添加元素(如果列表不存在就创建列表)返回列表的长度
    • rpush: 从列表右边添加元素
    • linsert: 向指定元素之前或之后添加一个元素 返回list的长度
    • lrange: 取出指定位置的list元素 [start,end](取出全部[0,-1])
    • lpop: 移除指定list的左边的一个元素,返回移除的元素
    • rpop: 移除指定list右边的元素
    • lindex: 取出指定下标的元素 -1 代表最后一个
    • llen: 获取list的长度
    • lrem: 删除指定个数的指定元素 count=0 代表删除全部指定的元素
      lrem key count value
    • ltrim: 截取list指定的位置(下标) [start,end] 将结果赋值给list
    set(无序不可重复)
    • sadd: 向set列表中添加元素 添加成功返回列表的长度 失败返回0
    • smembers: 取出set中的元素
    • sismember: 检查指定元素是否在指定的列表中 存在返回1 不存在返回0
    • scard: 获取set的长度 指定的set不存在时返回0
    • srem: 删除指定set列表中的指定元素
    • sinter: 获取多个set列表的交集
    • sunion: 获取多个set列表的并集
    hash(类似于map)
    • hset: 向hash中添加一组键值对
    • hget: 根据key获取value
    • hmset: 向hash中添加多个键值对
    • hmget: 获取多个key的value
    • hgetall: 获取全部的键值对
    • hdel: 根据key删除对应的键值对
    • hlen: 返回hash中键值对的个数
    • hexisit: 判断hash中是否包含指定的key
    • hkeys: 获所有的key
    • hvals: 获取所有的value
    • hsetnx: 只有字段不存在时,设置hash表字段的值
    sorted set(有序的set)
    • zadd: 向列表中添加元素 score(integer) 表示元素的顺序
      zadd setName score value
    • zcard: 获取指定sorted set列表的大小
    • zranfe: 取出指定位置的元素[start,end]
    • zrangebyscore: 取出指定score的元素[min,max]
    • zrem: 删除元素
    • zcard: 返回列表中元素的个数
    • zcount: 返回指定的score范围中元素的个数
    • zrank: 返回元素的下标
    key
    • keys pattern: 获取符合条件的key的name(keys * 获取所有)
    • exists key: 判断指定的key是否存在(可以指定多个) 返回存在的key的个数
    • move key dbindex: 移动数据到指定的数据库
    • flushdb: 清空当前的数据
    • flushall: 清空所有的数据库
    • expire key second: 设置数据的有效时间(单位是秒)
    • ttl key: 获取key的剩余有效时间
      • 1: 永不过期
      • 2: 已过期
    事务
    • multi: 标记事务的开始
    • exec: 提交事务
    • discard: 取消事务(回滚)
    • watch: 监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断
    • unwatch: 取消 watch 命令对所有 key 的监视。
    发布 订阅
    • subscribe name: 订阅指定的name
    • publish name message: name 发布 message
    java中使用

    缓存对象时 对象的类要实现 Serializable接口

    Spring mybatis 整合redis

    maven

    <!-- redis的依赖 -->
    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>2.9.0</version>
    </dependency>
    
    <!-- spring 整合redis的依赖  spring-data-redis 和jedis的版本要相匹配 否组会报错-->
    <dependency>
      <groupId>org.springframework.data</groupId>
      <artifactId>spring-data-redis</artifactId>
      <version>1.8.4.RELEASE</version>
    </dependency>
    <!-- 日志相关 -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.5</version>
      <scope>test</scope>
    </dependency>
    

    spring 配置文件 (applicationContext.xml)

    <!--配置 JedisPoolConfig-->
        <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
            <property name="testOnBorrow" value="${redis.testOnBorrow}"/>
            <property name="maxWaitMillis" value="${redis.maxWait}"/>
            <property name="maxIdle" value="${redis.maxIdle}"/>
            <property name="maxTotal" value="${redis.maxTotal}"/>
        </bean>
        <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
            <property name="poolConfig" ref="jedisPoolConfig"/>
            <property name="hostName" value="${redis.host}"/>
            <property name="port" value="${redis.port}"/>
            <property name="password" value="${redis.password}"/>
            <property name="timeout" value="${redis.timeout}"/>
        </bean>
        <!--配置RedisTemplate-->
        <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
            <property name="connectionFactory" ref="jedisConnectionFactory"/>
        </bean>
    
        <!--配置缓存管理器-->
    
        <bean id="cacheManager" class="org.springframework.data.redis.cache.RedisCacheManager">
        <!-- spring-data-redis 的版本好不同 这里的配置会有小差别 查看源码解决 -->
            <constructor-arg name="redisOperations" ref="redisTemplate"/>
        </bean>
        <!--使用注解配置缓存管理器-->
        <cache:annotation-driven/>
    

    在需要缓存的方法上面加Cacheable注解 value 可以找到这个方法的缓存的所有数据 key 可以确定某一个缓存

    @Cacheable(value = "goods",key="'goods'+#id")
    
  • 相关阅读:
    CentOS7下安装Scrapy
    阿里云ECS提示RHSA-2017:3263: curl security update
    CentOS 7.0安装配置LAMP服务器(Apache+PHP+MariaDB)
    Electron: 从零开始写一个记事本app
    flask请求流程
    编写Dockerfile
    docker-compose使用
    redis持久化切换rdb到aof
    RESTful API规范
    介绍importlib
  • 原文地址:https://www.cnblogs.com/yuing/p/8966923.html
Copyright © 2011-2022 走看看