基本操作

命令

含义

select [number]

切换库,默认16个库

flushdb

清空库

dbsize

查看数据库中数据个数

flushall

清空所有库

key操作

命令

含义

keys xxx

查找key,xxx为表达式,支持 * ?

type key

查看key对应值的类型

exists key

指定的key是否存在,0代表不存在,dr

del key

删除指定key

randomkey

在现有的KEY中随机返回一个

expire key seconds

为键值设置过期时间,单位是秒,过期后key会被redis移除

ttl key

查看key还有多少秒过期,-1表示永不过期,-2表示已过期

rename key newkey

重命名一个key,NEWKEY不管是否是已经存在的都会执行,如果NEWKEY已经存在则会被覆盖

renamenx key newkey

只有在NEWKEY不存在时能够执行成功,否则失败

常用五大数据类型

数量类型

描述

string

字符串

list

可以重复的集合

set

不可以重复的集合

hash

类似于Map<String,String>

zset(sorted set)

带分数的set

String类型操作

# string类型可以存二进制,jpg格式序列化的数据,一个string最大512M

命令

含义

set key value

添加键值对

get key

查询指定key的值

append key value

将给定的value追加到原值的末尾

strlen key

获取值的长度

setnx key value

只有在 key 不存在时设置 key 的值

incr key

指定key的值自增1,只对数字有效

decr key

指定key的值自减1,只对数字有效

incrby key num

自增num

decrby key num

自减num

mset key1 value1 key2 value2…

同时设置多个key-value对

mget key1 key2

同时获取一个或多个value

msetnx key1 value1 key2 value2

当key不存在时,设置多个key-value对

getrange key起始索引 结束索引

(查询的是值的索引)获取指定范围的值,都是闭区间

setrange key起始索引 value

从起始位置开始覆写指定的值

getset key value

以新换旧,同时获取旧值

setex key 过期时间 value

设置键值的同时,设置过期时间,单位秒,过期后查询为nil

List操作

list是双向链表

命令

含义

lpush/rpush key value1 value2…

从左边/右边压入一个或多个值 头尾效率高,中间效率低

lpop/rpop key

从左边/右边弹出一个值 值在键在,值光键亡 弹出=返回+删除

lrange key start stop

查看指定区间的元素 正着数:0,1,2,3,… 倒着数:-1,-2,-3,…

lindex key index

按照索引下标获取元素(从左到右)

llen key

获取列表长度

linsert key before|after value newvalue

在指定value的前后插入newvalue

lrem key n value

从左边删除n个value

lset key index value

把指定索引位置的元素替换为另一个值

ltrim key start stop

仅保留指定区间的数据

rpoplpush list1 list2

从list1右边弹出一个值,左侧压入到list2

set操作

set无序,不可重复

命令

含义

sadd key member [member …]

将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。

smembers key

取出该集合的所有值

sismember key value

判断集合是否为含有该值,有返回1,没有返回0

scard key

返回集合中元素的数量

srem key member [member …]

从集合中删除元素

spop key [count]

从集合中随机弹出count个数量的元素,count不指定就弹出1个

srandmember key [count]

从集合中随机返回count个数量的元素,count不指定就返回1个

sinter key [key …]

将指定的集合进行“交集”操作

sinterstore dest key [key …]

取key的交集,另存为一个dest

sunion key [key …]

将指定的集合执行“并集”操作

sunionstore dest key [key …]

取并集,另存为set

sdiff key [key …]

将指定的集合执行“差集”操作

sdiffstore dest key [key …]

取差集,并将差集存为dest

hash

Hash数据类型的键值对中的值是“单列”的,不支持进一步的层次结构

存储格式

redis 客户端lianjie命令 redis客户端连接命令带密码_数据库

命令

含义

hset key field value

为key中的field赋值value

hmset key field value [field value …]

为指定key批量设置field-value

hsetnx key field value

当指定key的field不存在时,设置其value

hgetall key

获取指定key的所有信息(field和value)

hkeys key

获取指定key的所有field

hvals key

获取指定key的所有value

hlen key

指定key的field个数

hget key field

从key中根据field取出value

hmget key field [field …]

为指定key获取多个filed的值

hexists key field

指定key是否有field

hincrby key field increment

为指定key的field加上增量increment

zset

zset是一种特殊的set(sorted set),在保存value的时候,为每个value多保存了一个score信息。根据score信息,可以进行排序
    这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以是重复了

命令

含义

zadd key [score member …]

添加

zscore key member

返回指定值的分数

zrange key start stop [withscores]

返回指定区间的值,可选择是否一起返回scores,start和stop是其实下标和

zrangebyscore key min max [withscores] [limit offset count]

在分数的指定区间内返回数据,从小到大排列 -inf是负无穷,+inf是正无穷

zrevrangebyscore key max min [withscores] [limit offset count]

在分数的指定区间内返回数据,从大到小排列

zcard key

返回集合中所有的元素的数量

zcount key min max

统计分数区间内的元素个数

zrem key member

删除该集合下,指定值的元素

zrank key member

返回该值在集合中的排名,从0开始

zincrby key increment member

为元素的score加上增量