Redis具有的特点以及优势
- Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- Redis支持数据的备份,即master-slave模式的数据备份。
Redis的几种数据类型
- String(字符串):使用的最多和json一起使用。
- List(字符串列表):按照插入顺序排序的字符串链表,和数据结构中的普通链表一样。
- Hash(字符串列表) :链表结构 ,适合用于存储对象。
- Set(字符串集合) :唯一性,用于保证数据的唯一性。
- Sorted set(有序字符串集合): 用于网站排名 竞价排名,变化不能太快。
string类型命令
- 设置值:设置key持有指定的字符串value 如果key存在就会进行覆盖操作。
set key value
- 获取值:获取key的value 如果key不是String类型 将返回错误的信息。
get key
- 先获取key的值 然后再设置key的值。
Getset key value
- 删除:删除指定的key(通用性命令)
Del key
- 数值增加:将指定的key的value原子性递增一。
Incr key
- 数值减少:将指定的key的value原子性递减一。
decr key
- 将指定的key的value原子性的value增加num。
扩展命令:
incrby key num
- 将指定的key的value原子性的value减少num。
decr key num
- 拼接字符串如果该key存在 则再原有的value后追加该值。
append key value
Hash类型命令
- 设置值:为指定的key设定field/value对(键值对)。
hset key field value
- 获取值:返回指定的key的field的value值。
hget key field
- 设置key的多个field/value。
hmset key field value field2 value2
- 获取key中的多个field的value值。
hmget key field field2
- 获取key中的field-value对(键值对)。
hgetall key
- 删除:可以删除一个或者多个field字段,返回值是被删除的字段。
hdel key field ....
- 删除整个hash列表。
del key
- 增加数字:设置key中的field增减num 。
hincrby key field num
- 判断值的field是否存在。
hexists key field
- 获取key所包含field的数量。
hlen key
- 获取所有的key
hkeys key
- 获取所有的field的value值。
hvals key
List类型命令
两端添加
- 在指定的key所关联的list的头部插入所有的values,插入成功,返回元素的个数。
lpush key values values1 values2
- 在list 的尾部插入需要添加的values元素,插入成功返回插入的个数。
rpush key values value1 value2
两端弹出
- 返回并弹出指定的key关联链表中的第一个元素,即头部元素,如果该key不存在,返回nil;若key存在,则返回链表的头号元素。
lpop key
- 返回并弹出指定key关联列表中的第一个元素,即尾部元素,如果该key不存在,返回nil;若key存在,则返回链表的头号元素。
rpop key
- 获取链表中从start到end元素的值,start,end从0开始,也可以是负数,若为-1则表示链表尾部的元素,-2则表示倒数第二个数。
lrange key start end
其他命令
- 获取列表中元素的个数:返回指定key关联链表中元素的数量。
llen key
- 仅当参数中只当的key存在时,向关联的list链表中的头部插入value。
lpushx key value
- 仅当参数中只当的key存在时,向关联的list链表中的尾部插入value。
rpush key value
4。 删除key中指定的value的元素。
lrem key count value
- 设置链表中index的索引的值为value (执行的替换的操作),0代表链表的头元素,-1代表链表的为尾元素。如果index的索引不存在则抛出异常。
lset key index value
- 在pivot元素前或者原属后插入value这个元素。
linsert key before(以前)||after(以后) pivot value
- 将链表中的的尾部元素弹出并添加到头部。
rpoplpush resouce distination
Set类型命令
添加
向set集合中添加数据,如果该key的值存在就不会重复添加。
sadd key values values1 values2
删除
删除set中只当的成员,删除的成员可以是多个。
srem key members members1 members1
获取
- 获取set中所有的成员。
smembers key
- 判断参数中指定的成员是否存在,该set中,1表示存在,0
表示不存在。
sismember key member
其他命令
- 返回key1和key中相差的成员(对方没有的就获取出来构成的集合),而且与key的顺序有关,即返回差集。
sdiff key1 key2
- 返回key1 和key2都有的成员(双方都有的就获取出来构成的集合),即返回交集。
sinter key1 key2
- 返回key1 和key2和key3都有的成员,相同的成员会进行覆盖的效果,即返回并集。
sunion key1 key2 key3
- 获取set集合中成员的数量。
scard key
- 随机返回set中的一个成员。
srandmember key
- 将key1和key2相差的成员存储在destination上。
sddiffstore destination key1 key2
- 将返回的交集存储在destination上key1
sinterstore destination key1 key2
- 将返回的并集存储在destination上。
sunionstore destination key1 key2
Sortted-set类型命令
- 添加元素:将所有的成员以及该成员的分数存放到sortted-set中,如果该元素已经存在则会用新的分数替换原来的分数,返回值时加入到集合中的个数,不包含之前存在的元素。((score)分数可以重复,member不可以重复)。
zadd key score member score2 member2
- 查询所所有的信息。
zrange key start end [withscores(是否携带参数)]
- 返回值指定的分数。
zscore key member
- 获取集合中所有的成员数量。
zcard key
- 获取集合中索引为statr-end之间的成员 withscores可选参数。
zrem key start end [withscores(是否携带参数)]
- 按照元素的分数从小到大返回索引。(从start到 end之间的所有yuans)。
zrevange key start end[withscores(是否携带参数)]
- 按照排名范围删除元素。
zremrangebyrank key start end
- 按照分数范围删除元素。
zremrangebyscore key min max
- 返回分数在[min,max]的成员按照分数从低到高排序, [withscores(是否携带参数)]:显示分数,[limit offset count]:offset 表明从索引到offset的元素开始返回 count:返回的成员个数。
zarangebyscore key min max [withscores(是否携带参数)] [limit offser count]
- 设置指定的成员的增加的分数,返回值是增加的分数。
zincrby key increment member
- 获取分数在min和max之间的成员。
zcount key min max
- 返回成员在集合中的排名(从小到大)。
zrank key member
- 返回成员在集合中的排名(从大到小)。
zrevrank key member