整理总结一下Redis基础命令和数据结构,忘记了方便查阅bash
能够是保存字符串、整数和浮点数
数据结构
set num 23 ex 10 //10秒后过时, px 10000 毫秒过时
setnx name test //不存在键name时,返回1且设置成功;存在的话失败0
set age 25 xx //存在键age时,返回1成功复制代码
get age //存在则返回value, 不存在返回nil复制代码
mset fruit apple num 5 # fruit apple 为一组;num 5 为一组复制代码
mget fruit num address //返回apple 5, address为nil复制代码
incr age //必须为整数自加1,非整数返回错误,无age键从0自增返回1
decr age //整数age减1
incrby age 2 //整数age+2
decrby age 2 //整数age-2
incrbyfloat score 1.1 //浮点型score+1.1复制代码
set name hello
append name world //追加后成helloworld
注意:
set age 34
append age 23 // 获得 "3423"
incr age // 获得 3424复制代码
set hello "世界"
strlen hello //结果6,每一个中文占3个字节复制代码
set name helloworld
getrange name 2 4 //返回 llo复制代码
哈希hash是一个string类型的field和value的映射表,hash特适合用于存储对象app
hset key field value复制代码
hset user:1 name ying //成功返回1,失败返回0复制代码
hget user:1 name //返回ying复制代码
hdel user:1 age //返回删除的个数复制代码
hset user:1 name james
hset user:1 age 23
hlen user:1 //返回2,user:1有两个属性值复制代码
hmset user:2 name ying age 23 sex male //返回OK复制代码
hmget user:2 name age sex //返回三行:ying 23 male复制代码
hexists user:2 name //若存在返回1,不存在返回0复制代码
hkeys user:2 // 返回name age sex三个field复制代码
hvals user:2 // 返回ying 23 male复制代码
hgetall user:2 //name age sex james 23 boy值复制代码
hincrby user:2 age 1 //age+1
hincrbyfloat user:2 age 2 //浮点型加2复制代码
用来存储多个有序的字符串,一个列表最多可存2的32次方减1个元素网站
rpush ying c b a //从右向左插入cba,返回值3复制代码
lrange ying 0 -1 //从左到右获取列表全部元素返回 c b a复制代码
lpush key c b a //从左向右插入cba复制代码
linsert ying before b teacher
//在b以前插入teacher, after为以后,使用lrange ying 0 -1 查看:c teacher b a复制代码
查找命令:ui
lrange key start end //索引下标特色:从左到右为0到N-1
lindex ying -1 //返回最右末尾a,-2返回倒数第二个
llen ying //返回当前列表长度
lpop ying //把最左边的第一个元素c删除
rpop ying //把最右边的元素a删复制代码
保存多元素,与列表不同的是不容许有重复元素,且集合是无序,一个集合最多可存2的32次方减1个元素,除了支持增删改查,还支持集合交集、并集、差集;spa
exists user //检查user键值是否存在
sadd user a b c //向user插入3个元素,返回3
sadd user a b //若再加入相同的元素,则重复无效,返回0
smember user //获取user的全部元素,返回结果无序
srem user a //返回1,删除a元素
scard user //返回2,计算元素个数复制代码
经常使用于排行榜,如视频网站须要对用户上传视频作排行榜,或点赞数与集合有联系,不能有重复的成员code
zadd key score member [score member......]
zadd user:zan 200 james //james的点赞数1, 返回操做成功的条数1
zadd user:zan 200 james 120 mike 100 lee// 返回3
zadd test:1 nx 100 james //键test:1必须不存在,主用于添加
zadd test:1 xx incr 200 james //键test:1必须存在,主用于修改,此时为300
zadd test:1 xx ch incr -299 james //返回操做结果1,300-299=1
zrange test:1 0 -1 withscores //查看点赞(分数)与成员名
zcard test:1 //计算成员个数, 返回1复制代码
keys * 复制代码
dbsize //2个键,若是存在大量键,线上禁止使用此指令复制代码
exists key //存在返回1,不存在返回0复制代码
del key //del hello school, 返回删除键个数,删除不存在键返回0复制代码
expire key seconds //set name test expire name 10,表示10秒过时
ttl key // 查看剩余的过时时复制代码
type key // type hello 返回string,键不存在返回none复制代码