[Redis]数据类型及命令

1:全局 key 操作

keys *    查询当前库的所有key

keys my* 获取当前数据库中所有以my开头的key

exists <key>  判断某个key是否存在,存在返回1,不存在返回0

type <key>  查看key的类型

del <key>  删除某个key

select 0   打开 ID 为 0 的数据库(一共16个数据库)

expire <key> <seconds>  为key设置存在时间,单位秒,如:短信验证

ttl <key>  查看还有多少秒过期,-1表示永不过期,-2表示已过期

rename mykey mykey1  将 mykey 改名为 mykey1

dbsize  查看当前数据库key的数量

Flushdb  清空当前库

Flushall  通杀全部数据库(慎重)

2:String类型(字符串)


string是redis最基本的类型,一个key对应一个value。

string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。

string类型是Redis最基本的数据类型,一个键最大能存储512MB。


set <key> <value>  添加键值对

getset <key> <value> 设置新的值,同时获取旧的值

setnx <key> <value> 只有该键不存在时,设置key的值

setex <key> <过期时间> <value>   设置key-value的同时,设置过期时间,单位为妙

mset <key1> <value1> <key2> <value2>  同时设置一个或多个键值对

msetnx <key1> <value1> <key2> <value2>  在key不存在时,同时设置一个或多个key-value

setrange <key> <起始位置> <value>  用value覆写key所存储的字符串值,从起始位置开始


del <key>  删除该键


append <key> <value>  若该键并不存在,返回当前 Value 的长度,该键已经存在,返回追加后 Value的长度

incr <key>  将key中存储的数字值增1,只能对数字值操作,如果为空,新增值为1

decr <key>  将key中存储的数字值减1,只能对数字值操作,如果为空,新增值为-1

incrby /decrby <key> <步长>  将key中存储的数字值增减,自定义步长


get <key>  查询key对应的value

strlen <key>  获取值的长度

mget <key1> <key2> <key3>  同时获取一个或多个value

getrange <key> <起始位置> <结束位置>  获取值的范围,类似java中的subString

3:List类型(单键多值)

List类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表一样,我们可以在其头部(left)和尾部(right)添加新的元素。

在插入时,如果该键并不存在,Redis将为该键创建一个新的链表。与此相反,如果链表中所有的元素均被移除,那么该键也将会被从数据库中删除。

List中可以包含的最大元素数量是4294967295。


lpush/rpush <key> <value1> <value2>
  从左边/右边插入一个或多个值

lpushx/rpushx <key> <value> 若key不存在,此命令无效, 若key存在,则左/右插入value中


linsert <key> before/after <value> <NewValue>  在<value>前/后插入<NewValue>值



lpop/rpop <key>  从左边或右边吐出一个值,值在键在,值光键死

lrem <key> <n> <value>  从左边删除n个value(从左到右),如果n为正数代表从左往右删,n为负数代表从右往左删几个,n为0时代表删除所有该元素


rpoplpush <key1> <key2>  从<key1>列表右边吐出一个值,添加到<key2>的左边


lrange <key> <start> <stop>  按照索引下标获得元素(从左到右) 0、-1

lindex <key> <index>  按照索引下标获得元素(从左到右)

llen <key>  获得列表长度

4:Set类型

Redis提供与List类似是一个列表的功能,特殊之处在于set可以自动排除重复元素,并且set提供了判断某个成员是否在一个set集合内的重要接口

Redis的set是String类型的无序集合,它底层是一个value为null额hash表,所以添加、删除、查找的复杂度都是 



sadd <key> <value1> <value2>  将一个或多个member元素添加到集合中,以及存在集合中的member元素将被忽略


srem <key> <value1> <value2>  删除集合中的某个元素

spop <key>  随机从该集合中吐出一个值,用于抽奖


smove <key1> <key2> <value>  将value从key1移动到key2


smembers <key>  取出该集合的所有元素

sismember <key> <value>  判断集合<key>是否含有该<value>值,有返回1,没有返回0

scard <key>  返回该集合的元素个数

srandmember <key> <n>  随机从该集合中取出n个值,不会从集合中删除

sinter <key1> <key2>  返回两个集合的交集元素

sunion <key1> <key2>  返回两个集合的并集元素

sdiff <key1> <key2>  返回两个集合的差集元素

5:Hash类型

Redis hash是一个键值对集合。Hash是一个String类型的field和value的映射表,Hash适用于存储对象
类似Java里的Map<String,String>, 每一个Hash可以存储4294967295个键值对。


Hash的类型格式解释:
redis.key = key
redis.value = (map.field = key,map.value = value)



hset <key> <field> <value>  给key集合中的field键赋值value

hmset <key> <field> <value> <field> <value>  批量设置hash的值

hsetnx <key> <field> <value>  仅在field不存在时,将哈希表key中 field 的设为 value


hdel <key> <field>  删除key中field键


hincrby <key> <field> <increment>  为哈希表key中的field的值加上增量increment,increment可为正负数


hget <key1> <field>  从key1集合中取出field的value值 

hgetall <key>  获取key中所有的 field 和 value

hexists <key> <field>  查看hash表key中,给定field是否存在

hkeys <key>  列出该hash集合所有的field

hvals <key>  列出该hash所有的value
 

6:ZSet(sorted set)类型

Redis有序集合zset与普通集合set非常相似,是一个没有重复元素的字符串集合。

Sorted-Sets中的每一个成员都会有一个分数(score)与之关联,Redis正是通过分数来为集合中的成员进行从小到大的排序。

成员是唯一的,但是分数(score)却是可以重复的


ZSet的类型格式解释:
redis.key = key
redis.value = (map.value= key,map.score= value)



zadd <key> <score1> <value1> <score2> <value2>  将一个或多个member元素及其score值
                              添加元素时,如果value存在,score不同时,新值替换旧值
                                   如果socre一样,value不同时,添加新元素


zrem <key> <value>  删除该集合下,指定值的元素



incrby <key> <increment - 增量> <value>  为元素score加上增量


zrange <key> <start> <stop> [withscores]  返回有序集key中,下标从start到stop的成员 一般开始为0,结束为-1,带上witscores,可以让分数一起返回

zrangebyscore <key> <min> <max> <withscores> <limit offset count>  
                  返回有序集key中,所有score值介于 min 和 max 之间的成员(包括等于min和max),score值递增(从小到大)排序 0 到 -1

zrevrangebyscore <key> <max> <min> <withscores> <limit offset count>  
                  返回有序集key中,所有score值介于 max 和 min 之间的成员(包括等于max和min),score值递增(从小到大)排序 -1 到 0

zcount <key> <min> <max>  统计该集合,分数区间内的元素个数

zrank <key> <value>  返回该value在集合中的排名,从0开始
原文地址:https://www.cnblogs.com/yan-sh/p/13095561.html