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")
原文地址:https://www.cnblogs.com/yuing/p/8966923.html