追加建的值
redis-cli
exists name #判断键是否存在,存在返回1,不存在返回0
append name yan #这个键不存在,因此append命令返回当前长度
append name yun #这个键存在,返回追加后的长度
set name tk #set是覆盖
strlen name #查看name建的字符长度
自加自减
set name 10 #设置name的值为10
incr name #自加1
decr name #自减1
decrby name 5 #减少指定的整数
incrby name 15 #增加指定的整数
GETSET
GETSET key value:获取key值并返回,同时给key设置新值
getset name yan #获取name键的值并返回,同时给name键设置新值yan
SETEX
setex key seconds value:设置指定key的过期时间为seconds
setex name 10 yun
ttl key #查看剩余存活时间 -1代表长期,-2表示过期或者是不存在
SETNX key value:不存在键的话执行set操作,存在的话不执行
MGET
MGET key [key …] #批量获取键值对,批量查看
需要相同数据类型
MSET
MSET key value [key value …]:批量设置键-值对
概述:列表的元素类型为string,按照插入顺序排序,在列表的头部或尾部添加元素
lpush list a b c d e #创建该键及与其关联的List,之后在将参数中的values从左到右依次插入
rpush list1 a b c d #右插入
lrange list 0 -1 #取链表中的全部元素,其中0表示第一个元素,-1表示最后一个元素
从左侧依次插入
lindex list1 2 #获取索引值为2(头部的第三个元素)的元素值。
hash用于存储对象。可以采用这样的命名方式(hash格式):对象类别和ID构成键名,使用字段表示对象的属性,而字段值则存储属性值。
如:存储ID为2的汽车对象。
如果Hash中包含很少的字段,那么该类型的数据也将仅占用很少的磁盘空间
每一个Hash可以存储4294967295个键值对
hset hash name yan #给键hash的键设置字段为name,值为yan。
hget hash name #获取键值为hash,字段为name的值
hlen hash #获取hash键的字段数量
hdel hash name1 #删除hash键的name1字段
hmset hash name yan name1 zi name3 yun #一次性设置多个字段
hmget hash name name1 name3 #指定获取多个字段值
hgetall hash #所有字段及其值,从结果中可以看出,他们是逐对列出的
hkeys hash #仅获取所有字段的名字
hvals hash # #仅获取所有字段的值
无序集合,元素类型为string类型,元素具有唯一性, 不允许存在重复的成员。多个集合类型之间可以进行并集、交集和差集运算
应用范围:
sadd set a b c d #插入数据
sismember set a #判断a是否存在 存在返回1 不存在返回0
smembers set #通过smembers命令查看插入的结果,从结果可以看出,输出的顺序和插入顺序无关
应用范围:
可以用于一个大型在线游戏的积分排行榜。每当玩家的分数发生变化时,可以执行ZADD命 令更新玩家的分数,此后再通过ZRANGE命令获取积分TOP10的用户信息。当然我们也可以利用ZRANK命令通过username来获取玩家的排行信息。最后我们将组合使用ZRANGE和ZRANK命令快速的获取和某个玩家积分相近的其他用户的信息
zadd zset 1 "yan" 2 "zi" 3 "yun" #添加权重为1,2,3的数据
zrange zset 0 -1
zrange zset 0 -1 withscores #WITHSCORES选 项表示返回的结果中包含每个成员及其分数,否则只返回成员