目录
字符串(string)
redis里的字符串不同于java或者c里的字符串,redis的字符串是可变的。redis称之为SDS(simple dynamic string)
常用操作命令
set [key] [value]
放置单个key对应value值,例如要放置指定用户的id对应的用户名: set 1001001 xiaoming
get [key]
相应的取出某个key所对应的值的命令即为: get 1001001
mset [key] [value] [key…] [value…]
批量放置多个key对应多个value值 mset 1001002 zhangsan 1001003 lisi
mget key [key…]
批量获取多个kye对应的value mget 1001002 1001001
incr key
若相应的value值是整数,此命令会递增value值,类似于++i操作。若key不存在,默认对应value值为0,所以此处结果为1
incrby key increment
递增指定increment步长:例如原本source 为1 incrby source 2后 source变为3
decr key
若相应的value值是整数,此命令会递减value值,类似于--i操作。若key不存在,默认对应value值为0,所以此处结果为-1
decrby key decrement
递增指定decrement步长:例如原本source 为3 decrby source 2后 source变为1
incrbyfloat key increment
与incrby功能一致,只不过increment是双精度浮点数 例如:incrbyfloat sourcefloat 1.2
strlen key
获取指定key值对应value的字符串长度,例如 strlen 1001001 会得到对应value(xiaoming)的字符串长度8
setex key seconds value
放置单个key对应value值,并设置过期时间,单位秒,该操作是原子操作。例如 setex mykey 10 hello
字典(hash)
redis里的字典功能类似于HashMap,例如可以把用户的信息存在一个hash字典里,key为这个用户id
hset key field value
往key对应的字典中放置相应的field和其对应的value值,例如 hset xiaoming_properties name xiaoming
hmset key field value [field…] [value…]
批量的往key对应的字段中放置多个field及其对应的value,hmset xiaoming_properties sex male age 12
hget key field
获取key字典中对应的field的value值,例如 hget xiaoming_properties name
hmget key field [field…]
批量获取key对应的字典中多个field对应的值 hmget xiaoming_properties name sex
hgetall key
获取key对应字典中所有的feild及其对应的value值,例如 hgetall xiaoming_properties
hexists key field
判断key字典中是否存在对应的field,存在则返回1,否则返回0。例如hexists xiaoming_properties name
hsetnx key field value
先判断key字典中是否存在field,若不存在则放置相应的value值,否则不做动作。例如hsetnx xiaoming_properties name xiaoming2
hincrby key field increment
功能与incrby一致,只不过这里先要先指定对应key的字典。例如 hincrby xiaoming_properties source 2
hdel key field [field…]
删除key字典中指定的某些field,返回被删除字段的个数。例如 hdel xiaoming_properties age source
hkeys key
返回key字典的所有字段列表,例如 hkeys xiaoming_properties
hvals key
返回key字典的所有字段值,例如 hvals xiaoming_properties
hlen key
返回key字典的字段总和,例如 hlen xiaoming_properties
列表(list)
redis里的list其实是个双向链表。
lpush key value [value…]
往key列表中左push相关字段。例如lpush listkey v1 v2 v3
rpop key
从key列表的右pop一个元素,返回pop出的元素。所以lpush 和 rpop配套使用为队列。lpush和lpop配套使用为栈。
rpush key value [value…]
往key列表中右push相关字段。例如rpush listkey v1 v2 v3
lpop kye
从key列表的左pop一个元素,返回pop出的元素。所以rpush 和 lpop配套使用为队列。rpush和rpop配套使用为栈。
集合(set)
redis中的set相当于java中的HashSet。内部存储是去重无序的。
sadd key value [value...]
往key对应的set集合中放入多个元素。例如 sadd setkey m1 m2
smembers key
获取key对应的set集合的所有元素。例如 smembers setkey
sismember key value
判断key对应的set集合中是否存在vlaue元素。例如 sismember setkey m1。存在即返回1 不存在即返回0
scard key
计算key对应的set集合的元素个数。例如 scard setkey
spop key [count]
从key对应的set集合中弹出count个元素,count为可选,不填默认1。例如 spop setkey 将会从setkey对应的集合中弹出一个元素
有序集合(zset)
zset是redis中非常有特色的数据类型,一方面它有set去重的功能,另一方它可以给每一个元素设置一个score,以此来对元素排序。
zadd key score value
往key对应的zset里增加一个元素value,并设置分数为score。默认按升序排序。例如 zadd scoreset 1.1 v1
zscore key value
查看具体元素value对应的score分数值。例如 zscore scoreset v1
zrange key start nums
获取按升序排序从start位置开始的,总共nums个元素。zcore scoreset 2 3。注意位数从0开始,这里的2即为第三个元素开始取后面三个元素
zrevrange key start nums
和zrange功能一样,只不过这里是获取降序start为开始,总共nums个元素。
zrangebyscore key min max
获取指定从min 到 max分数区间的所有元素
其他redis常用命令
type key
查看key对应的数据类型
keys *
查看所有key
del key
删除某个key
exists key
查看某个key是否存在,存在则返回1,否则返回0