先引入:private static StringRedisTemplate stringRedisTemplate;


Redis五大类型:字符串(String)、哈希/散列/字典(Hash)、列表(List)、集合(Set)、有序集合(sorted set)五种
Controller:@Resource RedisTemplate<String, String> 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<K> 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<HK> 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个,返回删除的个数;如果没有这个元素则返回0 
redisTemplate.opsForList().index(key, index);//检索
redisTemplate.opsForList().set(key, index, value);//赋值
redisTemplate.opsForList().trim(key, start, end);//裁剪,void,删除除了[start,end]以外的所有元素  
redisTemplate.opsForList().rightPopAndLeftPush(String sourceKey, String destinationKey);//将源key的队列的右边的一个值删除,然后塞入目标key的队列的左边,返回这个值
注意:要缓存的对象必须实现Serializable接口,因为 Spring 会将对象先序列化再存入 Redis,否则报异常nested exception is java.lang.IllegalArgumentException: DefaultSerializer requires a Serializable……//;;/

序号 

命令

说明

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

仅当列表存在时才将值附加到列表

Set:
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]

递增地迭代集合中的元素