Redis基础数据结构&命令总结

整理总结一下Redis基础命令和数据结构,忘记了方便查阅bash


1. 数据结构1-字符串(String)

能够是保存字符串、整数和浮点数
数据结构

设值命令

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复制代码

append追加指令

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复制代码


2. 数据结构2 - 哈希(Hash)

哈希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复制代码

判断field是否存在

hexists user:2 name //若存在返回1,不存在返回0复制代码

获取全部field

hkeys user:2            // 返回name age sex三个field复制代码

获取user:2全部value

hvals user:2     // 返回ying 23 male复制代码

获取user:2全部field与value

hgetall user:2 //name age sex james 23 boy值复制代码

增长1

hincrby user:2 age 1      //age+1

hincrbyfloat user:2 age 2   //浮点型加2复制代码


3. 数据结构3-列表<list>

用来存储多个有序的字符串,一个列表最多可存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删复制代码


4. 数据结构4-集合<set>

保存多元素,与列表不同的是不容许有重复元素,且集合是无序,一个集合最多可存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,计算元素个数复制代码


5. 数据结构5-有序集合(ZSET)

经常使用于排行榜,如视频网站须要对用户上传视频作排行榜,或点赞数与集合有联系,不能有重复的成员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复制代码


6. Redis全局命令

查看全部键

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复制代码
相关文章
相关标签/搜索