//常用命令
set k v //设置键值对
get k //获取key的值
getset k v //先获取在设置,如果一开始没有值,get位nil,但仍会设置
setex k seconds v // 设置过期时间
setnx k v //如果key不存在就设置
mset k1 v1 k2 v2 k3 v3 //批量设置
msetnx k1 v1 k2 v2 k3 v3 //批量设置,原子性操作,要么成功要么失败
mget K1 K2 //获取多个值
keys * //查看所有key
exists key //判断key是否存在
type key //查看数据类型
select num //选择数据库,默认16个
flushdb //清楚当前数据库内存
flushall //清楚所有数据库的内容
/*===========================================*/
//String类型
=====字符串=====
strlen key //显示字符串长度
append key "xxx" //追加字符串内容,key不存在直接新建
getrange key start end //截取字符串的值
getrange key start -1 //截取字符串的指定开始到末尾
setrange key start str //替换字符串的值
====数字====
incr key //自增1操作
incrby key num //num 指定步长 增量
decr key //自减操作
decrby key num //num 指定步长 减量
====对象====
set user:{id} {k1:v1,k2,v2} //set user:1 {name:3,age:4} k:user:{id} v:{k1:v1,k2,v2}
set user:{id}:{field} V // user:{id}:{field} 作为key值
/*===================List列表========================*/
//list类型 可以玩成,栈,队列,阻塞队列
//都是l开头,除了rpop,rpush
//双端 可以左插右插,左弹出右弹出
//可以有重复值
//list实际是一个链表。在两边插入或改动效率高,中间元素效率低 ,可以当作队列或者栈
lpush k v1 //左插入
rpush k v1 //右插入
lrange k 0 -1 //获取全部值
lrange k start end //获取区间值
lpop k //左弹出值
rpop k //右弹出值
lindex k num //获取下标的值
llen k //返回列表长度
lrem k num v //因为v可以重复,num指定移除值的数量,从上到下
ltrim k start end //截取值,会改变原有的list,getrange,lrange不会改变
rpoplpush k1 k2 //将list k1右弹出,并将弹出的值左加入到list k2中
lset k index v //更新指定列表下标的值,列表有对应的index才能set
linsert k before|after v v1 //k列表的v值前面或者后面插入v1的值
/*===================set集合,值不能重复========================*/
//set集合都是以set开头的
sadd k v //创建k集合并添加v值
srem k v //移除某个值
smembers k //查看k集合所有元素,不能用range是因为是无序的
sismember k v //查看是否包含某个值
scard k //获取set集合个数
srandmember k //随机获取set集合里的值
spop k //随机弹出一个值
smove k k1 v //将k里的v值移动到k1 不是原子性操作
sdiff k k1 //查看集合的差异值,显示第一个集合的插值
sinter k k1 //查看集合的交集,微信的共同好友
sunion k k1 //查看集合的并集
/*===================hash集合,相当于java的map集合========================*/
//hash适合存对象,string适合字符串
hset map k v //往map的hash集合放入kv键值对
hget map k //获取map集合的k对应的v值
hmset map k v k1 v1 k2 v2 //插入多个值
hgetall map //获取所有的K对应值,查找结果显示位 k1v1 k2v2
hdel map k //删除指定的k
hlen map //查看多少键值对
hexists map k //查看某个键值对是否存在
hkeys map //查看所有的field
hvals map //查看所有的valuse
hincrby mqp filed num //map中filed对应的值增加num
/*===================zset 有序无重复的集合,比起set多了一个有序========================*/
//新增的适合多加一个序号, zadd myzset num field
zadd zset num k //指定位置add值
zrem zset k //移除k
zcard zset //查看有多少k
zrangebyscore -inf(min) inf(max) zset //按照增加值的num从小到大排列,radis里num对应score
zrangebyscore -inf inf zset withscores //按照增加值的num从小到大排列,并显示scores, radis里num对应score
zrevrange 0 -1 zset //从大到小排列所有
zrevrange start top zset //从大到小排列,指定骑士位置
zrange 0 -1 zset //从小到大排列 排列所有
zrange start top zset //从小到大排列,指定骑士位置
zcount zset start end //获取指定区间的数量