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

Redis命令

2015-08-16 18:07 676 查看

Radis

简单命令

切换数据库

> select 0
OK


字符串结构

存储键值对

> set name 'hello world'


获取数据

> get name
"hello world"


针对特定类型的命令

以下一些操作依赖于特定的value值的类型,虽然redis并不关心你的值是什么,但是它还是提供一些对某种特定类型和结构有用的命令

获取指定字符串key的value长度

> strlen name
(integer) 11


获取字符串value指定范围的值

> getrange name 0 3
"hell"


添加内容到制定字符串value结尾

append name 'data apended'
(integer) 24
> get name
"hello worlddata appended"" data-snippet-id="ext.4c749b3c781d56a7e7033b2e3d17d36e" data-snippet-saved="false" data-csrftoken="dqzwTenF-X7fYUPDvgFYkF0bLJmATCh7QS5E" data-codota-status="done">[code]> append name 'data apended'
(integer) 24
> get name
"hello worlddata appended"


递增整型value

del num
(integer) 1
> incr num
(integer) 1
> incrby num 6
(integer) 7
> decr num
(integer) 6
> decrby num 5
(integer) 1" data-snippet-id="ext.3beb68ba4cc50ba79214d32968537d38" data-snippet-saved="false" data-csrftoken="MKKKz9f1-eQLuQzAifwF8G8CC4ESSwLFeMXA" data-codota-status="done">[code]> del num
(integer) 1
> incr num
(integer) 1
> incrby num 6
(integer) 7
> decr num
(integer) 6
> decrby num 5
(integer) 1


对错误的类型操作会导致异常

incr name
(error) ERR value is not an integer or out of range" data-snippet-id="ext.809efcab04d706ba6ab4e78b6c38fdac" data-snippet-saved="false" data-csrftoken="ATUdVpwc-sxPVsN9zcj7CAVAi-T2qoysJF4A" data-codota-status="done">[code]> incr name
(error) ERR value is not an integer or out of range


哈希结构

设置和取得指定key指定field的值

hset users:goku powerlevel 9000
(integer) 0
> hget users:goku powerlevel
"9000"" data-snippet-id="ext.7ccbfb9c613426b6ee4532a47d663ab9" data-snippet-saved="false" data-csrftoken="nDKehyrj-sxJtAStMf5Je8RSEXxWaiDD-cXY" data-codota-status="done">[code]> hset users:goku powerlevel 9000
(integer) 0
> hget users:goku powerlevel
"9000"


设置和取得指定key的多个field的值

hmset users:goku race saiyan age 737
OK
> hmget users:goku race powerlevel
1) "saiyan"
2) "9000"
> hgetall users:goku
1) "powerlevel"
2) "9000"
3) "race"
4) "saiyan"
5) "age"
6) "737"
> hkeys users:goku
1) "powerlevel"
2) "race"
3) "age"
> hdel users:goku age
(integer) 1" data-snippet-id="ext.0c8103381e3addd54e0669af9ef4404d" data-snippet-saved="false" data-csrftoken="VlbNY5X0-x8MjsxXjtmuwOzRgkQMZcXIu9ng" data-codota-status="done">[code]> hmset users:goku race saiyan age 737
OK
> hmget users:goku race powerlevel
1) "saiyan"
2) "9000"
> hgetall users:goku
1) "powerlevel"
2) "9000"
3) "race"
4) "saiyan"
5) "age"
6) "737"
> hkeys users:goku
1) "powerlevel"
2) "race"
3) "age"
> hdel users:goku age
(integer) 1


哈希结构的意义在于提供对数据操作的更细力度,如果我们仅仅使用字符串结构存储整个值,那么如果有对其中某个地方修改的话,必须更新整个值。而哈希结构让我们可以细粒度的增删改查数据的某个特定的地方

sort key [by pattern] [limit of …]

适用于列表,集合

列表结构

lpush mylist 'one'
(integer) 1
> llen mylist
(integer) 1
> lindex mylist 0
"one"
> linsert mylist before 'one' 'two'
(integer) 2
> lindex mylist 0
"two"
> linsert mylist after 'one' 'three'
(integer) 3
> lindex mylist 2
"three"
> lpop mylist
"two"
> lpush mylist 'four'
(integer) 3
> lrange mylist 0 9999
1) "four"
2) "one"
3) "three"
> lrem mylist 1 'four'
(integer) 1
> lrange mylist 0 9999
1) "one"
2) "three"
> lset mylist 0 'gaga'
OK
> lrange mylist 0 888
1) "gaga"
2) "three"
> ltrim mylist 0 0
OK
> lrange mylist 0 99
1) "gaga"
" data-snippet-id="ext.f41e1864221a1d5bae30e2a73e575c6f" data-snippet-saved="false" data-csrftoken="F8yP2k7s-Y9xsCQwDZZl58mtuYTtRKAeTl7g" data-codota-status="done">[code]> lpush mylist 'one'
(integer) 1
> llen mylist
(integer) 1
> lindex mylist 0
"one"
> linsert mylist before 'one' 'two'
(integer) 2
> lindex mylist 0
"two"
> linsert mylist after 'one' 'three'
(integer) 3
> lindex mylist 2
"three"
> lpop mylist
"two"
> lpush mylist 'four'
(integer) 3
> lrange mylist 0 9999
1) "four"
2) "one"
3) "three"
> lrem mylist 1 'four'
(integer) 1
> lrange mylist 0 9999
1) "one"
2) "three"
> lset mylist 0 'gaga'
OK
> lrange mylist 0 888
1) "gaga"
2) "three"
> ltrim mylist 0 0
OK
> lrange mylist 0 99
1) "gaga"


集合结构

sadd key member [member ...] 添加集合元素
scard key   包含元素个数
sdiff key [key ..] 取集合不同的元素
sdiffstore destination key [key ...] 取集合不同元素存储到destination
sinter key [key ...] 求交集
sinterstore destination key [key ...] 求交集并存储到destination
sismember key member 判断该元素是否属于该集合
smembers key 列出集合元素
smove source destination member 从source集合转移member元素到destination集合
spop key [count] 从头移除 count个元素
srandmember key [count] 随机获取一个或者多个元素
srem key member [member ...] 移除元素
sunion key [key ...] 求并集
sunionstore destination key [key ...] 求交集并保存到destination
sscan key cursor [match pattern...] 增量迭代集合元素


有序集合结构

带有权重有序的集合

写到这有点懒了0 0

大部分和上面的集合操作相同,有一些基于权重的特殊命令可以在下面查找

http://redis.io/commands#list
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  redis 数据库