redis有五种数据类型,基本覆盖业务应用的所有场景, 包括string(字符串), list(列表), hash(键值对), set(集合), zSet(有序集合).
如果是java开发者,对这五种数据类型一定很熟悉,但是这五种数据类和java中并不一样,这点,具体不同的原因会在后面学习中认识.
redis有着丰富的操作命令。
String 类型命令操作:
(1) set key value/ get key 设置/获取key-value
(2) getset key value 设置key-value的同时返回value的值
(3) incr/decr key 将key对应的value值加一或者减一,若key不存在,则初始值0
(4) incrby key increment 将key对应的value值加increment,如果是字符串类型,则返回错误
(5) decrby key decrement 将key对应的value值减decrement,如果是字符串类型,则返回错误
(6) setex key seconds value 设置key在seconds秒的时间后失效
(7) append key value 在key对应的value值上拼接value
(8) strlen key 获取key对应的字符串的长度
(9) mset key value key value/ mget key key 同时设置/获取多个key-value对
List 类型命令操作:
(1) lpush / rpush key value value 在key对应的list链表头部/尾部插入多个元素value,如果key不存在则创建key
(2) lpushx / rpushx key value value 在key对应的list链表头部/尾部插入元素value,如果key不存在则不做任何操作
(3) lpop / rpop key 取出key对应的list链表头部/尾部的一个元素
(4) lrange key start stop 查询key对应的list链表从start到stop的元素, 查询整个链表则start = 0 , stop = -1
(5) llen key 查询key对应的list链表的长度
(6) lrem key count value 删除key对应的list链表中的指定元素value,
count > 0 从头开始遍历删除, count < 0 从尾遍历开始删除, value为指定的元素
(7) ltrim key start stop 只保留start 和 stop之间的元素, 其他的全删除
(8) lset key index value 为value建立索引index, index 的取值范围只能 key的长度之间(0 ~ llen key - 1)
(9) lindex key index 获取索引index对应的value
(10) linsert key AFTER/BEFORE PROVI value 在key对应的list链表中provi元素的前/后面插入value元素
(11) rpoplpush source destination 取出source对应的list链表的最后一个元素,放入destination的头部
hash 类型命令操作:
(1) hset key field value / hget key field 设置/获取key对应的field字段对应的值
(2) hexists key field 判断field字段是否存在
(3) hlen key 获取key的对应的map的长度
(4) hdel key field 删除field字段
(5) hsetnx key field 只有当字段field不存在时,添加字段field
(6) hincrby key field increment 字段field增加 increment的值
(7) hgetall key 获取所有field-value
(8) hkeys 获取所有的key的集合
(9) hvals 获取所有的val的集合
(10) hmset key [field value...] / hmget [key...] 一次存储或者获取多个filed-value
Set 类型命令操作:
(1) key member1 member2 向key对应的集合增加元素, 如果key不存在,则创建
(2) scard key 获取key对应的集合元素个数
(3) sismember key member 判断member是否是集合key的元素
(4) smembers key 获取key对应集合中的所有元素
(5) spop key 随机移除key对应集合中的一个成员
(6) srem key member1 member2 删除集合中的指定元素
(7) srandmember key count 随机获取key集合中count个元素,但不删除该元素
(8) smov source destination member 将元素member从source转入destination集合中
(9) sdiff key1 key2 key3 查询各个集合得差集
(10) sdiffstore destination key1 key2 key3 查询各个集合得差集并存储到集合destination中,会覆盖destination原有的成员
(11) sinter key1 key2 key3 查询各个集合的交集
(12) sinterstore destination key1 key2 查询各个集合得交集并存入destination中,会覆盖destination的原有成员
(13) sunion key1 key2 key3 查询各个集合的并集
(14) sunion destination key1 key2 key3的查询各个集合得并集并存储
zSet 类型命令操作:
(1) zadd key score member 增加元素, score为元素的分数,如果增加时,某元素的分数已经存在,则更新此成员的分数为新值
(2) zcard key 查看key集合得元素个数
(3) zcount key min max 获取分数在min和max之间的元素个数
(4) zscore key member 获取member元素的分数
(5) zincrby key increment member 将元素的分数增加increment
(6) zrange key start stop 获取start到stop之间的元素, 如果stop = -1, start = 0 则获取所有
(7) zrevrange key start stop 获取排名在某个范围内的元素列表,从小到大排序
(8) zrangebyscore key min max 获取指定分数范围内的元素
(9) zrevrangebyscore key max min 获取指定分数范围内的元素,并依据分数从大到小排序
(10) zrank key member 获取元素的排名
(11) zrevrank 获取元素的排名,并依据分数从大到小排序
(12) zrem key member1 member2 删除一个或多个元素
(13) zremrangebyrank key start stop 按照排名范围删除元素
(14) zremrangebyscore key start stop 按照分数范围删除元素