您的位置:首页 > 数据库 > Redis

Redis学习笔记二:Redis的常用操作命令

2016-07-18 16:20 656 查看
一、 Redis对于key的操作命令

命令作用备注
del key [key ...]删除1个或多个键不存在的key忽略掉,返回真正删除的key的数量
rename key newkey把key改名为newkey如果newkey已存在,则newkey的原值被覆盖
renamenx key newkey把key改名为newkeynx-->not exists, 即, newkey不存在时,作改名动作
randomkey返回随机key-
exists key [key ...]返回key是否存在存在的key的个数
type key返回key存储的值的类型string,link,set,order set, hash 
ttl key 查询key的生命周期以秒返回生命周期
pttl key查询key的生命周期以毫秒返回生命周期
expire key seconds设置key的生命周期以秒为单位
pexpire key milliseconds设置key的生命周期以毫秒为单位
persist key把指定key置为永久有效-
move key db把key移动到另外一个数据库,db编号为数字一个redis进程,打开了不止一个数据库,默认打开16个数据库,从0到15编号,如果想打开更多数据库,可以从配置文件修改
keys pattern查找符合pattern的key在redis里,允许模糊查询key,keys * 表示查询所有的key

有3个通配符 *, ? ,[]

*: 通配任意多个字符

?: 通配单个字符

[]: 通配括号内的某1个字符

二、 Redis 关于String的操作命令

命令 作用备注
set key value [ex seconds] [px milliseconds] [nx|xx]设置一个keynx参数表示当key存在时不覆盖原有key,返回(nil),

xx则会覆盖原有key值,默认为xx
mset key value [key value ...]一次性设置多个键值mset key1 v1 key2 v2 ....
get key获取key的值-
mget key [key ...]获取多个key的值-
setrange key offset value修改第offset偏移字节为value只修改offset处的一个字节,如果偏移量>字符长度, 该字符自动补0x00
append key value把value追加到key的原值上 
getrange key start end获取字符串中start-stop范围的值对于字符串的下标,左数从0开始,右数从-1开始

注意: 

1: start>=length, 则返回空字符串

2: stop>=length,则截取至字符结尾

3: 如果start 所处位置在stop右边, 返回空字符串
getset key newvalue获取并返回key的旧值,设置新值-
incr key指定的key的值加11.不存在的key当成0,再incr操作    2. 范围为64有符号 3. 返回加1后的值
incrbyfloat key increment给key增加浮点数increment返回增加后的值
decr key -
decrby key number -
getbit key offset获取值的二进制表示,对应位上的值(从左,从0编号)-
setbit key offset value设置offset对应二进制位上的值返回: 该位上的旧值
三、 Redis 关于link链表的操作命令

命令作用备注
lpush key value把值插入到链接头部-
rpush key value--
lpop key返回并删除链表头部元素-
rpop key--
brpop key timeout等待弹出key的尾元素Timeout为等待超时时间,如果timeout为0,则一直等待
blpop  key timeout等待弹出key的头元素同上
lrange key start  stop返回链表中[start ,stop]中的元素左数从0开始,右数从-1开始
lrem key count value从key链表中删除 value值删除count个value后结束,count>0 从表头删除,count<0 从表尾删除
ltrim key start stop剪切key对应的链接切[start,stop]一段,并把该段重新赋给key
lindex key index返回index索引上的值,如  lindex key 2
llen key计算链接表的元素个数-
linsert  key after|before search value在key链表中寻找’search’,并在search值之前|之后,.插入value注: 一旦找到一个search后,命令就结束了,因此不会插入多个value
rpoplpush source dest把source的尾部拿出,放在dest的头部, 并返回 该单元值-
四、 Redis 关于集合set的操作命令

命令作用备注
sadd key  value1 value2往集合key中增加元素-
srem value1 value2删除集合中集为 value1 value2的元素返回值: 忽略不存在的元素后,真正删除掉的元素的个数
spop key返回并删除集合中key中1个随机元素随机--体现了无序性
srandmember key返回集合key中,随机的1个元素.-
sismember key  value判断value是否在key集合中是返回1,否返回0
smembers key返回集中中所有的元素-
scard key返回集合中元素的个数-
smove source dest value把source中的value删除,并添加到dest集合中-
sinterstore dest key1 key2 key3求出key1 key2 key3 三个集合中的交集,并赋给dest-
suion key1 key2.. Keyn求出key1 key2 keyn的并集,并返回-
sdiff key1 key2 key3 求出key1与key2 key3的差集-
五、 Redis 有序集合Order set的操作命令

命令作用备注
zadd key score1 value1 ......添加元素-
zrem key value1 value2 ...删除集合中的元素-
zremrangebyrank key start end按排名删除元素,删除名次在[start,end]之间的-
zrank key member查询member的排名升续 0名开始
zrevrank key memeber查询 member的排名降续 0名开始
ZRANGE key start stop [WITHSCORES]把集合排序后,返回名次[start,stop]的元素默认是升续排列 

Withscores 是把score也打印出来
zrevrange key start stop把集合降序排列,取名字[start,stop]之间的元素-
zrangebyscore  key min max [withscores] limit offset N集合(升续)排序后,取score在[min,max]内的元素,并跳过 offset个, 取出N个-
zcard key返回元素个数-
zcount key min max返回[min,max] 区间内元素的数量-
zinterstore destination numkeys key1 [key2 ...] 

[WEIGHTS weight [weight ...]] 

[AGGREGATE SUM|MIN|MAX]
求key1,key2的交集,key1,key2的权重分别是 weight1,weight2聚合方法用: sum |min|max, 聚合的结果,保存在dest集合内

答: 如果有交集, 交集元素又有socre,score怎么处理?

 Aggregate sum->score相加   , min 求最小score, max 最大score

另: 可以通过weigth设置不同key的权重, 交集时,socre * weights
六、 Redis 有哈希Hash的操作命令

命令作用备注
hset key field value把key中 filed域的值设为value如果没有field域,直接添加,如果有,则覆盖原field域的值
hmset key field1 value1 ......设置field1->N 个域, 对应的值是value1->N-
hget key field返回key中field域的值-
hmget key field1 field2 fieldN返回key中field1 field2 fieldN域的值-
hgetall key返回key中,所有域与其值-
hdel key field删除key中 field域-
hlen key返回key中元素的数量-
hexists key field判断key中有没有field域-
hinrby key field value是把key中的field域的值增长整型值value-
hinrby float  key field value是把key中的field域的值增长浮点值value-
hkeys key返回key中所有的field-
kvals key返回key中所有的value-
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: