key是可以有时效性的 setex(设置key同时设置过期时间) expire (key 过期时间)ttl(剩余时间)
五大数据类型
String(字符串)
Hash(哈希,类似java里的Map)
Redis hash 是一个键值对集合。
Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
List(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
它的底层实际是个链表
Set(集合)
Redis的Set是string类型的无序集合。它是通过HashTable实现实现的
Zset(sorted set:有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。
string
- set
- get
- del
- append 追加
- setex
- setnx 只有不存在的时候才设置, 成功时返回 1 , 失败时返回 0 。可以利用它来实现锁的效果
- strlen 长度
- incr/decr 自增、自减
list
List是单key多value的,就是一个key对应多个value
lpush/rpush
lrange 获取指定范围内的元素,(0,-1)是到全部
lpop/rpop
lindex,按照索引下标获得元素(从上到下)
llen
lrem key 删N个value
ltrim key 开始index 结束index,截取指定范围的值后再赋值给key
rpoplpush 源列表 目的列表
lset key index value
linsert key before/after 值1 值2 在某个key之前/之后插入
Set
Set是单key多value的,就是一个key对应多个value
sadd /smembers 返回集合中的所有成员 / sismember 判断 member 是否是集合 key 的成员
scard,获取集合里面的元素个数
srem key value 删除集合中元素
srandmember key 某个整数(随机出几个数)
spop key 随机出栈
smove key1 key2 member在key1里某个值 作用是将key1里的某个值赋给key2
数学集合类
差集:sdiff
交集:sinter
并集:sunion
hash
hset/hget/hmset/hmget/hgetall/
HMGET key field1 [field2] | 获取所有给定字段的值 |
HMSET key field1 value1 [field2 value2 ] | 同时将多个 field-value (域-值)对设置到哈希表 key 中。 |
hlen
hexists key 在key里面的某个值的key
hkeys/hvals
hincrby/hincrbyfloat
hsetnx
ZSet
在set基础上,加一个score值。 之前set是k1 v1 v2 v3, 现在zset是k1 score1 v1 score2 v2
zadd
ZRANGE key start stop [WITHSCORES] 通过索引区间返回有序集合指定区间内的成
zrangebyscore key 开始score 结束score
withscores
( 不包含
Limit 作用是返回限制
limit 开始下标步 多少步
zrem key 某score下对应的value值,作用是删除元素
zcard/zcount key score区间/zrank key values值,作用是获得下标值/zscore key 对应值,获得分数
zrevrank key values值,作用是逆序获得下标值
zrevrange
zrevrangebyscore key 结束score 开始score