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开始