redis 各数据类型操作命令

1.redis启动方式 直接命令启动 redis-server 动态命令redis-server --启动参数 配置文件redis-server 配置文件

2.验证redis 状态  ps -ef | grep redis      netstat -antpl | grep redis                redis -cli -h ip -p port ping

3.通用命令

keys : 列出所有的key  keys  xx*    keys  xx[a-g]*  keys  xx?  生产环境一般不使用

dbsize :数据库大小

exists key名 : key是否存在

del key名 [key1,key2..]:  删除key

expire key  seconds: 设置过期时间

ttl  key  : 查看key剩余过期时间  -1 无过期时间  -2 key 不存在

persist key  : 去除key 的过期时间

type  key  : 类型

string 操作

增删改查:    set存不存在都插入 (setnx key value只有key不存在才插入key      set  key  value xx    key存在才更新)  get    del

增加/减少:    incr key              decr key                      incrby  key  大小                          decrby  key  大小

mset k1 v1  k2  v2        mget k1  k2(get操作是原子操作)    批量操作    集群操作注意 slot的统一

getset  得到旧值  设置新值      append key  value  追加值        strlen  获取值的长度(注意中文长度,一个中文两个字节)

incrbyfloat  key floatvalue  给指定key  加  floatvalue

getrange key  start  end    获取指定范围的值  从0 开始  闭区间

setrange key  index value  设置指定位置key 的值

hash 操作  空了之后key自动删除

hash结构  key  field  value        field  唯一    value  可以重复

hset/hget  key field value  del key field      hsetnx  只有key field不存在才插入

hexists key field    判断field是否存在      hlen key  获取 field 数量

hmset key field1 value1 field2 value2

hmget key  field1 field2  批量获取 filed值

hincrby key field value  增加对应field的值

hgetall  key 获取所有field 值

hvals key  返回 key中所有field 的值

hkeys key  返回key  中所有  field

hincrbyfloat  key field floatvalue  给指定key 的 field 加  floatvalue

list 操作 有序  不唯一

rpush/lpush  key value1 value2  装入值

linsert key  before/after  oldvalue  newvalue  指定值后面插入值

lpop/rpop  key  弹出值

lrem  key  count  value    count >0 从左到右删除 count个value  count=0  删除所有 等于value的值  count < 0  从右到左删除 count个value值

ltrim key  start  end    保留  start ——》end  之间的值  闭区间

lrange  key  start  end      查询指定范围的值    闭区间

lindex  key  index    读取指定位置的值

llen  key  获取list长度

lset  key  index  newvalue    设置指定位置的值

blpop/brpop  key  timeout  阻塞弹出 timeout = 0 永不阻塞

使用:

lpush + lpop  实现 栈stack  功能    lpush + rpop 实现 队列queue 功能  lpush + ltrim  定长集合collection 功能    lpush + brpop  实现消息队列功能

set 操作  无序  唯一  空了之后key自动删除

sadd  key  增加    srem key  删除 

scard key  set的长度

sismember key value  判断value是否存在与key内

srandmember key count  随机取出 count个值

smembers    key  列出所有值

spop  key  随机弹出一个值

sinter  取交集      sdiff  差集 a有b没有的    sunion  取并集      sinter/sdiff/sunion  store  key    将结果 保存在key中

使用:

srandmember/spop  做抽奖

sadd    做标签

sadd + sinter  共同关注

zset  操作  有序  唯一

zadd  key score  value  添加值 【可以是多个】 score  可以重复        zrem  key  value    删除  【可以是多个】

zscore  key value    获取对应的级别分数

zrank  key  value  获取对应的排名

incrby  key  increscore  value    给对应value 增加 指定分数

zcard  key  集合元素数量

zrange key  start end  获取指定范围内的值  加  withscores  顺便获取分数

zrangebyscore key  minscore  maxscore  [withscores]  获取指定分数范围内的值 

zcount  key  minscore  maxscore  获取指定分数范围内值的个数

zremrangebyrank  key  start  end  删除指定排名范围内的值

zremrangebyscore  key  start  end  删除指定分数范围内的值

zrevrank  key反转排名 

zrevrange key    start end  指定排名范围倒排

zrevrangebyscore      start  end  指定分数范围倒排    zinterstore  zunionstore

集群操作注意 slot的统一,操作不当会报  "CROSSSLOT Keys in request don't hash to the same slot" 错

你可能感兴趣的:(redis 各数据类型操作命令)