一、Redis

REmote DIctionary Server(远程字典服务器),是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的key-value分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,是当前最热门的NoSQL数据库之一,也被称为数据结构服务器。

Redis有以下三个特点:

  • 支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
  • 不仅支持简单的key-value类型的数据,还提供listsetzsethash数据结构的存储。
  • 支持数据的备份,即master-slave模式的数据备份。

二、Redis数据类型

String字符串

  • string类型是Redis最基本的数据类型,一个key对应一个value(最大512M)。
  • string类型是二进制安全的,也就是说Redis的string可以包含任何数据,比如JPG图片或者序列化的对象。

Hash哈希

  • hash是一个键值对集合。
  • hash是一个string类型的keyvalue的映射表,特别适合用于存储对象。
  • hash类型与java中Map<String,Object>

List列表

  • list是简单的字符串列表,按照插入顺序排序,可以添加一个元素到列表大头部或者尾部。
  • list底层实现是链表

Set集合

  • setstring类型的无序集合。
  • 底层通过HashTable实现。

Zset有序集合

  • zsetset一样也是string类型元素的集合,且不允许有重复的成员。
  • zset每个元素都会关联一个double类型的分数。通过分数来为集合中的成员进行从小到大的排序。
  • zset的成员是唯一的,但是分数score却可以重复。

三、Key常用操作命令

keys *:列出所有的key

stringRedisTemplate 创建数据库 string数据库简介_字符串


exist key:判断key是否存在

stringRedisTemplate 创建数据库 string数据库简介_操作命令_02


move:移动key-value到其它库

stringRedisTemplate 创建数据库 string数据库简介_string类_03


expire key:设置过期时间

ttl key:查看key的过期时间

stringRedisTemplate 创建数据库 string数据库简介_操作命令_04


type key:查看key的类型

stringRedisTemplate 创建数据库 string数据库简介_常用操作_05

四、String常用操作命令

del:删除key

stringRedisTemplate 创建数据库 string数据库简介_字符串_06


append:追加value值字符串

stringRedisTemplate 创建数据库 string数据库简介_Redis_07


strlen:获取value的字符串的长度

stringRedisTemplate 创建数据库 string数据库简介_字符串_08


incrvalue值加一操作

stringRedisTemplate 创建数据库 string数据库简介_操作命令_09


decrvalue值减一操作

stringRedisTemplate 创建数据库 string数据库简介_字符串_10


incrbyvalue值加上一个数

stringRedisTemplate 创建数据库 string数据库简介_操作命令_11


decrbyvalue值减去一个数

stringRedisTemplate 创建数据库 string数据库简介_常用操作_12


getrange:获取指定范围内的值

stringRedisTemplate 创建数据库 string数据库简介_字符串_13

setrange:再指定的范围内设置值

stringRedisTemplate 创建数据库 string数据库简介_字符串_14


setex:设置带有过期时间的key-value

stringRedisTemplate 创建数据库 string数据库简介_Redis_15


setnx:只有key不存在才设置key-value,可以防止覆盖。

stringRedisTemplate 创建数据库 string数据库简介_常用操作_16

mset:同时设置多个key-value

mget:同时获取多个key-value

stringRedisTemplate 创建数据库 string数据库简介_string类_17


msetnx:只有key都不存在时,才可以设置成功,部分存在则不能设置成功

stringRedisTemplate 创建数据库 string数据库简介_字符串_18

五、List常用操作命令

lpush:从头部(左侧)按顺序存放列表元素

lrange:按指定的范围获取列表元素

stringRedisTemplate 创建数据库 string数据库简介_操作命令_19


rpush:从尾部(右侧)按照顺序存放列表元素

stringRedisTemplate 创建数据库 string数据库简介_Redis_20


lpop:左端弹出一个元素

rpop:右端弹出一个元素

stringRedisTemplate 创建数据库 string数据库简介_string类_21

lindex:按照索引获取指定的元素

stringRedisTemplate 创建数据库 string数据库简介_Redis_22


llen:获取列表的长度

stringRedisTemplate 创建数据库 string数据库简介_Redis_23


lrem:删除指定数量的元素

stringRedisTemplate 创建数据库 string数据库简介_Redis_24


ltrim:截取指定索引范围的value值,重新赋值

stringRedisTemplate 创建数据库 string数据库简介_操作命令_25


rpoplpush source destination:从source右侧取出一个元素放到destination左端

stringRedisTemplate 创建数据库 string数据库简介_字符串_26


lset:给指定索引index的位置设置value

stringRedisTemplate 创建数据库 string数据库简介_string类_27


linsert key before/after value1 value2:在指定的value之前/之后插入指定的值

stringRedisTemplate 创建数据库 string数据库简介_Redis_28


对于List列表:

  • 它是一个字符串链表leftright都可以插入添加。
  • 如果键不存在,则创建新的链表。
  • 如果键已存在,则新增内容。
  • 如果值全部移除,对应的键也就消失了。
  • 链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很低。

六、Set常用操作命令

sadd:集合存放中存放元素

smembers:获取集合所有元素

sismember:判断集合中是否存在某个元素

stringRedisTemplate 创建数据库 string数据库简介_string类_29

scard:获取集合中元素的个数

stringRedisTemplate 创建数据库 string数据库简介_常用操作_30


srem:删除集合中元素

stringRedisTemplate 创建数据库 string数据库简介_操作命令_31


srandmember:在集合中随机抽取指定个数的元素

stringRedisTemplate 创建数据库 string数据库简介_Redis_32


spop:随机获取元素

stringRedisTemplate 创建数据库 string数据库简介_字符串_33


smove:将key1中的某个元素移动到key2

stringRedisTemplate 创建数据库 string数据库简介_字符串_34

sdiff:求差集。以第一个key为参照

stringRedisTemplate 创建数据库 string数据库简介_string类_35


sinter:求交集

stringRedisTemplate 创建数据库 string数据库简介_操作命令_36


sunion:求并集

stringRedisTemplate 创建数据库 string数据库简介_常用操作_37

六、Hash常用操作命令

hset:存放hash元素

hget:获取hash元素

stringRedisTemplate 创建数据库 string数据库简介_字符串_38

hmset:同时设置多个key-valuehmget:同时获取多个key-value

hgetall:获取全部key-value

stringRedisTemplate 创建数据库 string数据库简介_操作命令_39


hdel:删除指定元素

stringRedisTemplate 创建数据库 string数据库简介_Redis_40


hlen:获取元素个数

stringRedisTemplate 创建数据库 string数据库简介_常用操作_41


hexists:判断某个key值是否存在

stringRedisTemplate 创建数据库 string数据库简介_string类_42


hkeys:获取所有key

hvals:获取所有value

stringRedisTemplate 创建数据库 string数据库简介_操作命令_43


hincrby:增加某个keyvalue

stringRedisTemplate 创建数据库 string数据库简介_字符串_44


hincrbyfloat:增加某个keyvalue值,增加小数

stringRedisTemplate 创建数据库 string数据库简介_Redis_45


hsetnx:不存在key才允许存放

stringRedisTemplate 创建数据库 string数据库简介_Redis_46

七、Zset常用操作命令

zadd:存放zset元素

zrange:获取里面的所有元素

zrange withscores:同时获取带scoresvalue

stringRedisTemplate 创建数据库 string数据库简介_string类_47


zrangebyscores:获取指定scores范围的值

stringRedisTemplate 创建数据库 string数据库简介_Redis_48


zrangebyscores withscores:获取指定scores范围的值,带scoreszrangebyscores (:获取指定scores范围的值,(开区间,不包含

zrangebyscores limit:获取指定scores范围的值,limit限制条件

stringRedisTemplate 创建数据库 string数据库简介_字符串_49


zrem:移除某个元素

stringRedisTemplate 创建数据库 string数据库简介_Redis_50


zcard:获取元素个数

zcount:获取指定score区间的元素的个数

zrank:获取指定元素的下标

zscore:获取指定元素的score

stringRedisTemplate 创建数据库 string数据库简介_常用操作_51


zrevrank:逆序获取下标值

stringRedisTemplate 创建数据库 string数据库简介_常用操作_52


zrevrange:逆序获取元素

stringRedisTemplate 创建数据库 string数据库简介_string类_53


zrevrangebyscore:逆序获取指定score范围的元素

stringRedisTemplate 创建数据库 string数据库简介_字符串_54