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.clients jedis 2.9.0 org.springframework.data spring-data-redis 1.8.4.RELEASE org.slf4j slf4j-log4j12 1.7.5 test
spring 配置文件 (applicationContext.xml)
在需要缓存的方法上面加Cacheable注解 value 可以找到这个方法的缓存的所有数据 key 可以确定某一个缓存
@Cacheable(value = "goods",key="'goods'+#id")