四时宝库

程序员的知识宝库

Redis 基础(redis 基础数据结构 源码)

Redis是key-value 数据库,value的类型有几个基本的类型。下面介绍这几个基本的类型。

前提:索引  从0开始,-1表示最后一个 

String

命令:

set key value【添加或者修改key对应的值,正确返回1】

get key【查看key的值】

mset key1 value key2 value【批量设置key,正确时返回?OK

mget key1 key2【批量获取key的值】

getset key【设置key新值返回旧值,没有时返回? nil

getrange key start end【返回key中字符串的字串,长度不够是返回?【本身[start end 都包含]

incr key【将key中存储的数字值+1,返回?【新值】【非数字报错】】

incrby key increment【将key中存储的数字值+increment】

decr key【将key中存储的数字值-1】

strlen key【获取字符串的长度】

setnx key value【只有key不存在时设置key的值,没有时返回?【1】,已经含有的话返回?【0】】

msetnx key1 value1 []【批量设置,当且仅当所有给定 key 都不存在【相当于设置是原子的【全部成功或者全部失败】】】

setEx key serconds value【设置key的过期时间,如果key原先不是时间限制的?【将变为含有过期时间的key】】

psetex key milliseconds value【设置key的过期时间以毫秒为单位】

append key value【如果key存在是一个字符串,在后面追加。如果是数字呢?当成字符串处理

使用场景:

key唯一 setnx 原子操作【分布式锁】 setex 含有过期时间

Hash

Hdel key field1 [field2]【删除field】

hexists key field【field是否存在】

hget key field【获取field】

hgetall key【获取所有field 以及值】

hincrby key field increment【key中field中的整数值增加increment】

hkeys key 【所有hash的field】

hlen key【field的数量】

hmget key field1[field2] 【获取给定字段的值】

hmset key field1 value1[field2 value2]

hset key field value【设置field的值】

hsetnx key field value【只有没有的时候,才成功】

hvals key 【key中的所有值】

List【进出有顺序】

lpush key value1 value2 【往key里放值】

lindex key index【根据索引获取值】

llen key 【里面有多少个值】

lpop key 【移除并获取第一个值】

linsert key before|after pivot value 【在某一个值前/后 插入值】

lpushx key value【插入头部】

lrange key start stop【根据索引获取一段范围的值】

lrem key count value【删除value】

lset key index value【根据索引设置值】

ltrim key start stop【修建key中的值】

使用场景:栈 和 队列

Set

sadd key member1 【向集合中添加元素】

scard key【获取集合中的成员个数】

smembers key【集合中的所有元素】

sismember key member【判断集合中时候有某一个成员】

sdiff key1 key2【集合的差集】

sdiffstore dest key1 key2【差集并保存】

sinter key key2【交集】

sunion key1 key2【并集】

sscan key cursor 【迭代集合中的元素】

spop key 【移除随机的一个元素】

srandmember key count【返回一个或者count个的随机数】

场景:

不可重复的元素 【关注,点赞】集合的运算【共同关注等】

Zset【默认从小到大排列】

zadd key score1 members1 【添加元素,并且制定元素的score】

zcard key【集合中的个数】

zrange key start stop【根据索引返回制定区间的值】==zrevrange

zrevrange key start end [withscores]【查看制定序号之间的成员以及score】

zrank key member 【返回制定成员的排序】===zrevrank

zrangebyscore key start end [withscores] 【按score排序返回成员】

zrem key member【删除成员】

zscore key member【成员的分数】

zcount key min max 【查看制定区间的个数】


场景:

优先级 唯一排序

注意:

hset key 后,set 可以使用同样的key,hset的key无效了【set先之后,hset不能同一个key】

Xset操作【如果key第一次 返回1 如果再次相当于更新 返回0】

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言