Redis的常见类型有如下几种,string丶hash丶list丶set丶zset,他们简单且常用的命令操作在这里做一个总结:
1. string
# SET key value
# 设置指定 key 的值
set hello world
# GET key
# 获取指定 key 的值。
GET hello
# SETEX key seconds value
# 将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)。
SETEX hello2 5 world2
# MSET key value [key value ...]
# 同时设置一个或多个 key-value 对。
mset hello world hello2 world2 hello3 world3
# MGET key1 [key2..]
# 获取所有(一个或多个)给定 key 的值。
MGET hello hello2 hello3
# INCR key
# 将 key 中储存的数字值增一。
set addnum 1 --设置加1
INCR addnum --查看 每次查看都加1
# DECR key
# 将 key 中储存的数字值减一。
DECR addnum --查看 每次查看都减1
2.hash
介绍: Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。
Redis 中每个 hash 可以存储 2的32次方 - 1 键值对(40多亿)
大map又套用了小map
相关命令:
# ===========Hash类型命令=============
# HSET key field value
# 将哈希表 key 中的字段 field 的值设为 value 。
HSET KA ka helloworld
HSET KA kc helloworldc --如果ka 和 kc 相同会覆盖前面的内容
# HGET key field
# 获取存储在哈希表中指定字段的值。
HGET KA ka
# HEXISTS key field
# 查看哈希表 key 中,指定的字段是否存在。
# 返回1代表存在,返回0代表不存在
HEXISTS KA ka
HEXISTS KA kb
# HGETALL key
# 获取在哈希表中指定 key 的所有字段和值
HGETALL KA
# HKEYS key
# 获取所有哈希表中的字段
HKEYS KA
# HDEL key field1 [field2]
# 删除一个或多个哈希表字段
HDEL KA kc
3. 大key的操作
# DEL key
# 该命令用于在 key 存在时删除 key。
DEL visit
# EXISTS key
# 检查给定 key 是否存在。
EXISTS visit
# EXPIRE key seconds
# 为给定 key 设置过期时间,以秒计。
EXPIRE hello 5
# PERSIST key
# 移除 key 的过期时间,key 将持久保持。
PERSIST hello
# KEYS pattern
# 查找所有符合给定模式( pattern)的 key 。
keys *
4. List类型
1、有序;
2、可重复;
3、可以当做队列使用:Rpush右推——》LPOP左取,先入先出。
# 顺序:默认左进左出
# LPUSH key value1 [value2]
# 将一个或多个值插入到列表头部
LPUSH sanguo liubei guanyu zhangfei
# LPOP key
# 移出并获取列表的第一个元素
LPOP sanguo
# LRANGE key start stop
# 查看list当中所有的数据
LRANGE sanguo 0 -1
# LINDEX key index
# 通过索引获取列表中的元素
LINDEX sanguo 1
# LSET key index value
# 通过索引设置列表元素的值
LSET sanguo 3 lvbu #如果索引处存再值会覆盖
5. Set类型
1、去重
2、无序
uv:访问客户量,需要按照客户去重
pv:客户访问量,不需要去重
# SADD key member1 [member2]
# 向集合添加一个或多个成员
SADD visit user1
SADD visit user2
SADD visit user1
SADD visit user3
SADD visit user2
SADD visit user5
sadd visit user1 user2 user3 user4 user5 user1 user2 user6
# SMEMBERS key
# 返回集合中的所有成员
SMEMBERS visit
# SCARD key
# 获取集合的成员数量
SCARD visit
# SDIFF key1 [key2] 哪一个key在后面就返回它里面没有的
# 返回给定所有集合的差集
SADD home user4
SADD home user5
SADD home user6
SDIFF visit home #返回home中没有的
SDIFF home visit #返回visit中没有的
# SREM key member1 [member2]
# 移除集合中一个或多个成员
SREM visit user2
6. Zset的命令
1、去重;2、有序。
和set的区别:key和value中间多了一个score, key score value;
是按照score排序,按照value去重。
写:ZADD
读:ZRANGE、ZREVRANGE
# ZADD key score1 member1 [score2 member2]
# 向有序集合添加一个或多个成员,或者更新已存在成员的分数
ZADD pv_edu 100 page1.html 110 page2.html 120 page3.html
key score value1 score value2
# ZCARD key
# 获取有序集合的成员个数
ZCARD pv_edu
# ZCOUNT key min max
# 计算在有序集合中指定区间分数的成员数
ZCOUNT pv_edu 110 120
# ZINTERSTORE destination numkeys key [key ...]
# 计算给定的一个或多个有序集的交集并将结果集存储在新的有序集合 key 中
ZADD pv_edu2 110 page2.html 135 page3.html 90 page4.html 100 page5.html
ZINTERSTORE pv_edu_inter 2 pv_edu pv_edu2
ZCARD pv_edu_inter
# ZRANGE key start stop [WITHSCORES]
# 通过索引区间返回有序集合指定区间内的成员
ZRANGE pv_edu_inter 0 -1 WITHSCORES
# ZINCRBY key increment member
# 有序集合中对指定成员的分数加上增量 increment
ZINCRBY pv_edu_inter 1 page3.html
# ZRANK key member
# 返回有序集合中指定成员的索引(有小到大 asc)
ZRANK pv_edu2 page4.html
# ZREVRANK key member
# 返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小 desc)排序
ZREVRANK pv_edu2 page4.html