Redis五大类型:字符串(String)、哈希/散列/字典(Hash)、列表(List)、集合(Set)、有序集合(sorted set)五种
Controller:@Resource RedisTemplate redisTemplate;
总括:
redisTemplate.opsForValue();//操作字符串
redisTemplate.opsForHash();//操作hash
redisTemplate.opsForList();//操作list
redisTemplate.opsForSet();//操作set
redisTemplate.opsForZSet();//操作有序set
String:
1.redisTemplate.opsForValue().set(key,value));
2.redisTemplate.opsForValue().get(key));
3.redisTemplate.opsForValue().get(key, start, end);
4.redisTemplate.opsForValue().getAndSet(key, value);
5.redisTemplate.opsForValue().getBit(key, offset);//下方注释
6.redisTemplate.opsForValue().multiGet(keys);
7.redisTemplate.opsForValue().setBit(key, offset, value);//下方注释
8.redisTemplate.opsForValue().set(K key, V value, long timeout, TimeUnit unit);//TimeUnit是timeout的类型,如毫秒\秒\天等
9.redisTemplate.opsForValue().setIfAbsent(key, value);
10.redisTemplate.opsForValue().set(K key, V value, long offset);//博主此处未做java验证
11.redisTemplate.opsForValue().size(key));
12.redisTemplate.opsForValue().multiGet(Collection keys);
13.redisTemplate.opsForValue().multiSetIfAbsent(Map extends K, ? extends V> m);
14.同8
15\16\17\18\19.redisTemplate.opsForValue().increment(K key, long delta);或.increment(K key, double delta);
20.redisTemplate.opsForValue().append(key, value);//在key键对应值的右面追加值value
可以看到并没有删除等方法,博主研究了一下可以这样:21.del key------21.redisTemplate.opsForValue().getOperations().delete(key);
编号 |
命令 |
描述说明 |
1 |
SET key value |
此命令设置指定键的值。 |
2 |
GET key |
获取指定键的值。 |
3 |
GETRANGE key start end |
获取存储在键上的字符串的子字符串。 |
4 |
GETSET key value |
设置键的字符串值并返回其旧值。 |
5 |
GETBIT key offset |
返回在键处存储的字符串值中偏移处的位值。 |
6 |
MGET key1 [key2..] |
获取所有给定键的值 |
7 |
SETBIT key offset value |
存储在键上的字符串值中设置或清除偏移处的位 |
8 |
SETEX key seconds value |
使用键和到期时间来设置值 |
9 |
SETNX key value |
设置键的值,仅当键不存在时 |
10 |
SETRANGE key offset value |
在指定偏移处开始的键处覆盖字符串的一部分 |
11 |
STRLEN key |
获取存储在键中的值的长度 |
12 |
MSET key value [key value …] |
为多个键分别设置它们的值 |
13 |
MSETNX key value [key value …] |
为多个键分别设置它们的值,仅当键不存在时 |
14 |
PSETEX key milliseconds value |
设置键的值和到期时间(以毫秒为单位) |
15 |
INCR key |
将键的整数值增加1 |
16 |
INCRBY key increment |
将键的整数值按给定的数值增加 |
17 |
INCRBYFLOAT key increment |
将键的浮点值按给定的数值增加 |
18 |
DECR key |
将键的整数值减1 |
19 |
DECRBY key decrement |
按给定数值减少键的整数值 |
20 |
APPEND key value |
将指定值附加到键 |
.setBit(key, offset, value):key键对应的值value对应的ascii码,在offset的位置(从左向右数)变为value.(此处感谢@参考文章对我理解的帮助),由于二进制只有0和1,此处value只能取0和1,如图,其他值是超出范围的
.getBit(key, offset):获取键对应值的ascii码的在offset处位值.
@ascii码对照表
Hash:
1.redisTemplate.opsForHash().delete(H key, Object... hashKeys);//...表示可以传入多个map的key,用,隔开。或用数组传值
2.redisTemplate.opsForHash().hasKey(key, hashKey);
3.redisTemplate.opsForHash().get(key, hashKey);
4.redisTemplate.opsForHash().entries(key);//返回map集合
5、6.redisTemplate.opsForHash().increment(H key, HK hashKey, long delta);//或increment(H key, HK hashKey, double delta);;
7.redisTemplate.opsForHash().keys(key);//返回map的key集合Set
8.redisTemplate.opsForHash().size(key);
9.redisTemplate.opsForHash().multiGet(H key, Collection hashKeys);
10.redisTemplate.opsForHash().putAll(H key, Map extends HK, ? extends HV> m);
11.redisTemplate.opsForHash().put(key, hashKey, value);
12.redisTemplate.opsForHash().putIfAbsent(key, hashKey, value);
13.redisTemplate.opsForHash().values(key);//返回map中的value集合List;
序号 |
命令 |
说明 |
1 |
HDEL key field2 [field2] |
删除一个或多个哈希字段。 |
2 |
HEXISTS key field |
判断是否存在散列字段。 |
3 |
HGET key field |
获取存储在指定键的哈希字段的值。 |
4 |
HGETALL key |
获取存储在指定键的哈希中的所有字段和值 |
5 |
HINCRBY key field increment |
将哈希字段的整数值按给定数字增加 |
6 |
HINCRBYFLOAT key field increment |
将哈希字段的浮点值按给定数值增加 |
7 |
HKEYS key |
获取哈希中的所有字段 |
8 |
HLEN key |
获取散列中的字段数量 |
9 |
HMGET key field1 [field2] |
获取所有给定哈希字段的值 |
10 |
HMSET key field1 value1 [field2 value2 ] |
为多个哈希字段分别设置它们的值 |
11 |
HSET key field value |
设置散列字段的字符串值 |
12 |
HSETNX key field value |
仅当字段不存在时,才设置散列字段的值 |
13 |
HVALS key |
获取哈希中的所有值 |
List:
redisTemplate.opsForList().leftPush(key, value);//从左向右存压栈
redisTemplate.opsForList().leftPop(key);//从左出栈
redisTemplate.opsForList().size(key);//队/栈长
redisTemplate.opsForList().range(key, start, end);//范围检索,返回List
redisTemplate.opsForList().remove(key, i, value);//移除key中值为value的i个,
|
命令 |
说明 |
1 |
BLPOP key1 [key2 ] timeout |
删除并获取列表中的第一个元素,或阻塞,直到有一个元素可用 |
2 |
BRPOP key1 [key2 ] timeout |
删除并获取列表中的最后一个元素,或阻塞,直到有一个元素可用 |
3 |
BRPOPLPUSH source destination timeout |
从列表中弹出值,将其推送到另一个列表并返回它; 或阻塞,直到一个可用 |
4 |
LINDEX key index |
通过其索引从列表获取元素 |
5 |
LINSERT key BEFORE/AFTER pivot value |
在列表中的另一个元素之前或之后插入元素 |
6 |
LLEN key |
获取列表的长度 |
7 |
LPOP key |
删除并获取列表中的第一个元素 |
8 |
LPUSH key value1 [value2] |
将一个或多个值添加到列表 |
9 |
LPUSHX key value |
仅当列表存在时,才向列表添加值 |
10 |
LRANGE key start stop |
从列表中获取一系列元素 |
11 |
LREM key count value |
从列表中删除元素 |
12 |
LSET key index value |
通过索引在列表中设置元素的值 |
13 |
LTRIM key start stop |
修剪列表的指定范围 |
14 |
RPOP key |
删除并获取列表中的最后一个元素 |
15 |
RPOPLPUSH source destination |
删除列表中的最后一个元素,将其附加到另一个列表并返回 |
16 |
RPUSH key value1 [value2] |
将一个或多个值附加到列表 |
17 |
RPUSHX key value |
仅当列表存在时才将值附加到列表 |
redisTemplate.opsForValue().getAndSet(key, value)
序号 |
命令 |
说明 |
1 |
SADD key member1 [member2] |
将一个或多个成员添加到集合 |
2 |
SCARD key |
获取集合中的成员数 |
3 |
SDIFF key1 [key2] |
减去多个集合 |
4 |
SDIFFSTORE destination key1 [key2] |
减去多个集并将结果集存储在键中 |
5 |
SINTER key1 [key2] |
相交多个集合 |
6 |
SINTERSTORE destination key1 [key2] |
交叉多个集合并将结果集存储在键中 |
7 |
SISMEMBER key member |
判断确定给定值是否是集合的成员 |
8 |
SMOVE source destination member |
将成员从一个集合移动到另一个集合 |
9 |
SPOP key |
从集合中删除并返回随机成员 |
10 |
SRANDMEMBER key [count] |
从集合中获取一个或多个随机成员 |
11 |
SREM key member1 [member2] |
从集合中删除一个或多个成员 |
12 |
SUNION key1 [key2] |
添加多个集合 |
13 |
SUNIONSTORE destination key1 [key2] |
添加多个集并将结果集存储在键中 |
14 |
SSCAN key cursor [MATCH pattern] [COUNT count] |
递增地迭代集合中的元素 |