Redis具有的特点以及优势

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

Redis的几种数据类型

  • String(字符串):使用的最多和json一起使用。
  • List(字符串列表):按照插入顺序排序的字符串链表,和数据结构中的普通链表一样。
  • Hash(字符串列表) :链表结构 ,适合用于存储对象。
  • Set(字符串集合) :唯一性,用于保证数据的唯一性。
  • Sorted set(有序字符串集合): 用于网站排名 竞价排名,变化不能太快。

string类型命令

  1. 设置值:设置key持有指定的字符串value 如果key存在就会进行覆盖操作。
set key value
  1. 获取值:获取key的value 如果key不是String类型 将返回错误的信息。
get key
  1. 先获取key的值 然后再设置key的值。
Getset key value
  1. 删除:删除指定的key(通用性命令)
Del key
  1. 数值增加:将指定的key的value原子性递增一。
Incr key
  1. 数值减少:将指定的key的value原子性递减一。
decr key
  1. 将指定的key的value原子性的value增加num。
    扩展命令:
incrby key num
  1. 将指定的key的value原子性的value减少num。
decr key num
  1. 拼接字符串如果该key存在 则再原有的value后追加该值。
append key value

Hash类型命令

  1. 设置值:为指定的key设定field/value对(键值对)。
hset key field value
  1. 获取值:返回指定的key的field的value值。
hget key field
  1. 设置key的多个field/value。
hmset key field value field2 value2
  1. 获取key中的多个field的value值。
hmget key field field2
  1. 获取key中的field-value对(键值对)。
hgetall key
  1. 删除:可以删除一个或者多个field字段,返回值是被删除的字段。
hdel key field ....
  1. 删除整个hash列表。
del key
  1. 增加数字:设置key中的field增减num 。
hincrby key field num
  1. 判断值的field是否存在。
hexists key field
  1. 获取key所包含field的数量。
hlen key
  1. 获取所有的key
hkeys key
  1. 获取所有的field的value值。
hvals key

List类型命令

两端添加
  1. 在指定的key所关联的list的头部插入所有的values,插入成功,返回元素的个数。
lpush key values values1 values2
  1. 在list 的尾部插入需要添加的values元素,插入成功返回插入的个数。
rpush key values value1 value2
两端弹出
  1. 返回并弹出指定的key关联链表中的第一个元素,即头部元素,如果该key不存在,返回nil;若key存在,则返回链表的头号元素。
lpop  key
  1. 返回并弹出指定key关联列表中的第一个元素,即尾部元素,如果该key不存在,返回nil;若key存在,则返回链表的头号元素。
rpop key
  1. 获取链表中从start到end元素的值,start,end从0开始,也可以是负数,若为-1则表示链表尾部的元素,-2则表示倒数第二个数。
lrange key start end
其他命令
  1. 获取列表中元素的个数:返回指定key关联链表中元素的数量。
llen key
  1. 仅当参数中只当的key存在时,向关联的list链表中的头部插入value。
lpushx key value
  1. 仅当参数中只当的key存在时,向关联的list链表中的尾部插入value。
rpush key value

4。 删除key中指定的value的元素。

lrem key count value
  1. 设置链表中index的索引的值为value (执行的替换的操作),0代表链表的头元素,-1代表链表的为尾元素。如果index的索引不存在则抛出异常。
lset key index value
  1. 在pivot元素前或者原属后插入value这个元素。
linsert key before(以前)||after(以后) pivot value
  1. 将链表中的的尾部元素弹出并添加到头部。
rpoplpush resouce distination

Set类型命令

添加

向set集合中添加数据,如果该key的值存在就不会重复添加。

sadd key values values1 values2
删除

删除set中只当的成员,删除的成员可以是多个。

srem key members  members1 members1
获取
  1. 获取set中所有的成员。
smembers key
  1. 判断参数中指定的成员是否存在,该set中,1表示存在,0
    表示不存在。
sismember key member
其他命令
  1. 返回key1和key中相差的成员(对方没有的就获取出来构成的集合),而且与key的顺序有关,即返回差集。
sdiff key1 key2
  1. 返回key1 和key2都有的成员(双方都有的就获取出来构成的集合),即返回交集。
sinter key1 key2
  1. 返回key1 和key2和key3都有的成员,相同的成员会进行覆盖的效果,即返回并集。
sunion key1 key2 key3
  1. 获取set集合中成员的数量。
scard key
  1. 随机返回set中的一个成员。
srandmember key
  1. 将key1和key2相差的成员存储在destination上。
sddiffstore destination key1 key2
  1. 将返回的交集存储在destination上key1
sinterstore destination key1 key2
  1. 将返回的并集存储在destination上。
sunionstore destination key1 key2

Sortted-set类型命令

  1. 添加元素:将所有的成员以及该成员的分数存放到sortted-set中,如果该元素已经存在则会用新的分数替换原来的分数,返回值时加入到集合中的个数,不包含之前存在的元素。((score)分数可以重复,member不可以重复)。
zadd key score member score2 member2
  1. 查询所所有的信息。
zrange key start end [withscores(是否携带参数)]
  1. 返回值指定的分数。
zscore key member
  1. 获取集合中所有的成员数量。
zcard key
  1. 获取集合中索引为statr-end之间的成员 withscores可选参数。
zrem key start end [withscores(是否携带参数)]
  1. 按照元素的分数从小到大返回索引。(从start到 end之间的所有yuans)。
zrevange key start end[withscores(是否携带参数)]
  1. 按照排名范围删除元素。
zremrangebyrank key start end
  1. 按照分数范围删除元素。
zremrangebyscore key min max
  1. 返回分数在[min,max]的成员按照分数从低到高排序, [withscores(是否携带参数)]:显示分数,[limit offset count]:offset 表明从索引到offset的元素开始返回 count:返回的成员个数。
zarangebyscore key min max [withscores(是否携带参数)] [limit offser count]
  1. 设置指定的成员的增加的分数,返回值是增加的分数。
zincrby key increment member
  1. 获取分数在min和max之间的成员。
zcount key min max
  1. 返回成员在集合中的排名(从小到大)。
zrank key member
  1. 返回成员在集合中的排名(从大到小)。
zrevrank key member