注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

@fc_lamp

关注Web应用解决方案MySql/PHP/Python一盏名为"飞川"的灯~

 
 
 

日志

 
 

Redis 常用命令(仅作备忘录)  

2013-10-11 11:53:54|  分类: Web技术-Redis |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
String 数据类型操作[命令 空格 参数      ]

命令

说明

例子

set

设置key对应的值为string类型的value

set name fc_lamp

setnx

设置key对应的值为string类型的value。如果key已经存在,返回0nxnot exist的意思

setnx name test

setex

设置key对应的值为string类型的value,并指定此键值对应的有效期(设置 test key 5秒后失效)

setex test 5 red

setrange

设置指定keyvalue值的子字符串,

fc@163.com 替换成 fc@qq.com (从下标为3开始)

set  name fc@163.com

setrange name 3 qq.com

mset

一次设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置。

mset key1 value1 key2 value2

msetnx

一次设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置,但是不会覆盖已经存在的key

msetnx key1 value1 key3 value3

(key3是不会被设置成功的)

get

获取key对应的string,如果key不存在返回nil

get  key1

getset

设置key的值,并返回key的旧值

getset  key1  newvalue1

getrange

获取指定keyvalue值的子字符串,当下标超出字符串长度时,将默认为是同方向的最大下标

getrange key1 0 3 #截取0~3字符

getrange key1 0 -1#负数从右边

mget

一次获取多个key的值,如果对应key不存在,则对应返回nil

mget key1 key2

incr

key的值做++操作,并返回新的值。注意incr一个不是intvalue会返回错误,incr一个不存在的key,则设置key1

set age 4

incr age #增加1

incr year #不存在的key,值为1

 

incrby

incr类似,加指定值 key不存在时候会设置key,并认为原来的value 0(当为负数时,当减)

incrby age 5 #增加5

incrby moth 2#不存在的key

incrby age -2 #负数时当减操作

decr

key的值做的是--操作,decr一个不存在key,则设置key-1

decr age #1

decr  testage #不存在的key,-1

decrby

decr,减指定值(同样,当为负数时负负得正)

decrby age 2 #2

decrby age -2#负数时,就为增了

decrby tt 2 #不存在的key,原值为0,返值 -2

 

append

给指定key的字符串值追加value,返回新字符串值的长度

set name fc

append name @163.com

strlen

取指定keyvalue值的长度

strlen name


















































Hash 数据类型

hash特别适合用于存储对象。相较于将对象的每个字段存成单个string类型。将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。省内存的原因是新建一个hash对象时开始是用zipmap(又称为small hash)来存储的。这个zipmap其实并不是hash table,但是zipmap相比正常的hash实现可以节省不少hash本身需要的一些元数据存储开销。尽管zipmap的添加,删除,查找都是O(n),但是由于一般对象的field数量都不太多。所以使用zipmap也是很快的,也就是说添加删除平均还是O(1)。如果field或者value的大小超出一定限制后,Redis会在内部自动将zipmap替换成正常的hash实现.这个限制可以在配置文件中指定

  hash-max-zipmap-entries 64 #配置字段最多64个。

  hash-max-zipmap-value 512 #配置value最大为512字节。

命令

说明

例子

hset

设置hash field为指定值,如果key不存在,则先创建。

hset hashtable field value

hsetnx

设置hash field为指定值,如果key不存在,则先创建。如果field已经存在,返回0nxnot exist的意思。

hsetnx hashtable field test

hmset

同时设置hash的多个field

hmset hastable field1 value1 field2 value2

hget

获取指定的hash field

hget hastable field1

hmget

获取多个指定的hash filed

hmget hastable field1 field2

hgetall

获取某个hash中全部的filedvalue

hgetall hastable

返回:

1)“field”

2)”value”

3)”field1”

4)”value1”

………..

 

hincrby

指定的hash filed 加上给定值

hset hastable age 5

hincrby hastable age 5

hexists

测试指定field是否存在,存在返回1,否0

hexists hastable age

hlen

返回指定hashfield数量

hlen hastable

hdel

删除hash某个字段

hdel hastable field1

hkeys

返回hash的所有field

hkeys hastable

hvals

返回 hash所有的value

hvals hastable






























Lists 数据类型操作

 list是一个链表结构,主要功能是pushpop、获取一个范围的所有值等等

命令

说明

例子

lpush

key对应list的头部()添加字符串元素

lpush mylist1 world

lpush mylist1 hello

rpush

key对应list的尾部()添加字符串元素

rpush mylist2 hello

rpush mylist2 world

lrange

返回指定list某范围内的元素

lrange mylist 0 -1 #返回整个列表

linsert

key对应list的特定位置之前或之后添加字符串元素

linsert mylist1 before world the

#world 之前插入 the

lset

设置list中指定下标的元素值(下标从0开始)

lset mylist 0 testhello #将第一个元素改为testhello

lset mylist -1 testworld #将最一个元素改为testworld

lrem

key对应list中删除count个和value相同的元素

count>0时,按从头到尾的顺序删除

count<0时,按从尾到头的顺序删除

count=0时,删除全部

lrem mylist 1 testhello

lrem mylist -1 testhello

lrem mylist 0 testhello #只有一个元素也会被删除

ltrim

保留指定key 的值范围内的数据

ltrim mylist 1 -1 #只保留第2到最后的元素

lpop

list的头部删除元素,并返回删除的元素

lpop mylist

rpop

list的尾部删除元素,并返回删除元素

rpop mylist

rpoplpush

从第一个list的尾部移除元素并添加到第二个list的头部,最后返回被移除的元素值,整个操作是原子的.如果第一个list是空或者不存在返回nil

rpoplpush mylist1 mylist2

lindex

返回名称为keylistindex位置的元素

lindex mylist 1

llen

返回key对应list的长度

llen mylist1






































Sets 数据类型操作

set是集合,和我们数学中的集合概念相似.

命令

说明

例子

sadd

向名称为keyset中添加元素

sadd myset test

smembers

查看集合中的元素

smembers myset

srem

删除名称为keyset中的元素member

srem myset test

spop

随机返回并删除名称为keyset中一个元素

spop myset

srandmember

随机返回名称为keyset的一个元素,但是不删除元素

srandmember myset

sdiff

求差集(注意是有顺序的,在第一KEY里而不在第二KEY)

sdiff myset1 myset2

sdiffstore

求差集(并保存为另外一个set

sdiffsotre myset3  myset1 myset2

sinter

求交集

sinter myset1 myset2

sinterstore

求交集(并保存)

sinterstore myset4 myset1 myset2

sunion

求并集

sunion myset1 myset2

sunionstore

求并集(并保存)

sunionstore myset5 myset1 myset2

smove

从第一个key对应的set中移除member并添加到第二个对应set

smove myset1 myset2 three #set1中的three移到set2

scard

返回名称为keyset的元素个数

scard myset1

sismember

测试member是否是名称为keyset的元素

sismember myset1 one

 


































SortedSet 数据类型操作

 sorted setset的一个升级版本,它在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解为有两列的mysql表,一列存value,一列存顺序。(下面的(闭合)均表示左闭右闭)

命令

说明

例子

zadd

zadd set score value

向名称为keyzset中添加元素memberscore用于排序。如果该元素已经存在,则根据score更新该元素的顺序

zadd myzset 1 one

zadd myzset 2 two

zadd myzset 3 four

zadd myzset 4 two

zadd myzset 5 three

zrange

返回指定范围内的集合元素(顺序排)

zrange myzset 0 -1

#返回顺序:one four twothree

zrange myzset 0 -1 withscores

#显示出score

#返回:

1)“one”

2)”1”

3)”four”

4)”3”

5)”two”

6)“4”

……..

zrevrange

返回指定范围内的集合元素(倒序排)

zrevrange myzset 0 -1

#返回:threetwofourone

zrevrange myzset 0 -1 withscores #同样有withscores

1)”three”

2)”5”

3)”two”

4)”4”

5)”four”

………

zrangebyscore

返回集合中score在给定区间的元素

zrangebyscore myzset 3 5 withscores

#返回score3~5间的元素(闭合)

zincrby

如果在名称为keyzset中已经存在元素member,则该元素的score增加increment;否则向集合中添加该元素,其score的值为increment

zincrby myzset 1 two

#我们将two元素的score值加强,这样twothreescore值都是5

zincrby myzset 2 five

#添加一个新元素,score2

zrank

返回名称为keyzsetmember元素的即下标(索引),按score值从小到大排序

zrank myzset five

#five score2,顺序排是索引下标是1

zrevrank

返回名称为keyzsetmember元素的即下标(索引),按score值从大到小排序

zrevrank myzset five

#five score2,倒序排是索引下标是3

zrem

删除名称为keyzset中的元素member

zrem myzset four

zremrangebyrank

删除集合中索引在给定区间的元素

zremrangebyrank myzset 3 4

#删除索引在3~4的元素(闭合)

zremrangebyscore

删除集合中score在给定区间的元素

zremrangebyscore myzset 2 5

#删除score 2~5的元素(闭合)

zcount

返回集合中score在给定区间的数量

zcount myzset 2 5

#返回score2~5间的元素个数

zcard

返回集合中元素个数

zcard myzset

zscore

返回给定元素对应的score

zscore myzset two









































































事务相关的命令

multi #开启事务

...命令集....

>exec #执行队列中的所有命令

如图:
Redis 常用命令(仅备忘之) - fc_lamp - @fc_lamp
 事务中错误的命令(由key test 是string类型,因此hset不能操作test);
Redis 常用命令(仅备忘之) - fc_lamp - @fc_lamp
 

键值相关的命令

命令

说明

例子

keys

返回满足给定pattern的所有key

keys * #所有

keys my*#my开头的

exists

key是否存在

exists age

del

删除一个key

del mykey

expire

设置一个key的过期时间(单位:)

expire mykey 5

ttl

获取这个key的有效时长

ttl mykey

move

将当前数据库中的key转移到其它数据库中

move mykey 1

#mykey移到库1

persist

移除给定key的过期时间(只是移除了过期时间)

persist mykey

randomkey

随机返回key空间中的一个key

randomkey

rename

重命名一个key

rename oldkey newkey

type

返回key的类型

type mykey

























服务器相关命令


命令

说明

例子

ping

测试连接是否存活

ping

echo

在命令行打印一些内容

echo test

select

选择数据库。Redis数据库编号从0~15,我们可以选择任意一个数据库来进行数据的存取

select 0

select 1

select 16 #报错

quit

退出连接。

quit

dbsize

返回当前数据库中key的数目。

dbsize

info

获取服务器的信息和统计。

info

monitor

实时转储收到的请求

monitor #试一下,你就知道了

config get

获取服务器配置信息

config get dir

#获取了dir这个参数配置的值,要获取所有请 config get *

flushdb

删除当前选择数据库中的所有key

flushdb

flushall

删除所有数据库中的所有key

flushall




























参自: 
http://www.redis.io/documentation
http://www.it168.com/redian/redis/
  评论这张
 
阅读(580)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017