目录
redis数据类型
- 字符串类型(String)
- 哈希类型(hash)
- 列表类型(list)
- 集合类型(set)
- 有序集合类型(sorted set)
字符串String常用命令
- set key value
set name huang (设置key 为 name ,value 为 huang)
- get key
get name (获得 key 为 name 的 value )
- setex key seconds value
setex age 10 20 (设置key 为 age ,存在时长为10秒 , value 为 20
- setnx key value
setnx name huang (当key 为 name 不存在时, 设置key 为 name ,value 为 huang)
哈希hash常用命令
hash特别适合用于存储对象,field 表示字段 ,相当于一个对象中的属性名
- hset key field value
hset 1 name huang (key = 1 , 字段field = name , 值value = huang)
- hget key field
hget 1 name (获取key=1 ,字段为name的值 value = huang)
- hdel key field
hdel 1 name(删除key=1的指定字段name)
- hkeys key
hkeys 1 (获取key=1 的所有字段名称)
- hvals key
hvals 1 (获取key=1 的所有值)
- hgetall key
hgetall 1(获取key=1 的所有字段和值)
列表list常用命令
简单的字符串列表,按照插入顺序排序
- lpush key value1[value2] 将一个或多个值插入到列表头部
lpush mylist a b c (a为第一个元素,b第二个元素插入到列表头部)
- lrange key start stop 获取列表指定范围内的元素
lrange mylist 0 -1 (表示从0到最后) 用图可以看出结果,说明c也是插入再列表头部的
- rpop key 移除并获取列表最后一个元素
rpop mylist (可以获取的结果为a ,即列表最后一个元素)
- llen key 获取列表的长度
llen mylist (获取当前列表的长度)
- brpop key1[key2] timeout 移除并获取列表的最后一个元素,如果列表没有元素会阻塞列表直到 等待超时或者发现可以弹出元素为止
brpop mylist 10 (阻塞10秒后结束命令)
集合set常用命令
set时String类型的无序集合,集合中的元素是唯一的,说明其不能出现重复元素
- sadd key member1 meber2 ... 向集合添加一个或多个成员
sadd myset a b c d e f a b(添加了a b 等等成员 ,不含有重复元素)
sadd myset2 a b f g
- smembers key 返回集合中所有的成员
smembers myset (返回所有的成员,但是是无序的,和插入顺序无关)
- scard key 获取集合的成员数
scard myset (返回集合中的成员数量,比如这里返回6)
- sinter key1 key2 ... 返回所有给定集合的交集
sinter myset myset2 (返回 a b f ,即集合myset 与 myset2 中相同的成员)
- sunion key1 key2 ... 返回所有给定集合的并集
sunion myset myset2 (返回a b c d e f g ,即两个集合中所有的成员)
- sdiff key1 key2 返回所有给定集合的差集
sdiff myset myset2 (返回c d e ,即返回myset集合中myset2集合没有的成员)
- srem key member1 member2 ... 移除集合中一个或多个成员
srem myset e f (即移除 e f 成员)
有序集合sorted set集合的常用命令
也是String类型的集合,没有重复成员,每个元素都会关联一个double类型的分数(score)。redis通过分数的大小来为集合中的元素进行从小到大的排序。有序集合的成员是唯一的,但是分数可以重复。常用于排行榜。
- zadd key score1 member1 [score2 member2 ...] 向有序集合添加一个或者多个成员,或者更新已经存在成员的分数
zadd mysort 1.1 a 1.2 b 2 c 0.1 huang ( 则集合中成员的顺序为:huang a b c)
- zrange key start stop 返回再区间内的所有成员
zadd mysort 0 -1 (返回所有的成员)
- zincrby key increment member 有序集合中对指定成员的分数加上增量increment
zincrby mysort 3.1 huang (将成员huang的分数加上3.1,并且返回当前huang的分数)
- zrem key member1 member2 ... 移除一个或者多个成员
zrem mysort a b (移除 a b 成员)
通用命令
不同的类型拥有不同的操作命令,当我们想要管理不同类型的key时,可以使用通用命令来操作他们。
- keys pattern 查找所有符合给定模式(pattern)的key
keys * (返回所有的key)
- exists key 检查给定的key是否存在
exists mylist (检查 mylist 这个key是否存在)
- type key 返回key所存储的类型
type mylist (返回 mylist 这个key所存储的类型)
- ttl key 返回给定key的剩余生存时间,以秒为单位
ttl mylist (返回 mylist 这个key所剩余的生存时间 ,如果没有设置生成时间,则返回-1)
- del key 如果给定的key存在,则删除给定的key
del mylist (如果 mylist 存在,那么删除 mylist 这个key)