string (字符串)
- 设置
-- 单个设置
set key value [expiration EX seconds|PX milliseconds] [NX|XX]
-- 等价于 set+expire
setex key seconds value
-- 等价于 set+NX
setnx key value
-- 多个设置
mset key value [key value ...]
--------------------------------------------------------以下为例子----------------------------------------
-- 多数据设置
127.0.0.1:6379> mset name1 vaule1 name2 value2
OK
127.0.0.1:6379> keys *
1) "name2"
2) "name1"
3) "asd"
-- nx用法
127.0.0.1:6379> set name1 value ex 4 nx
OK
127.0.0.1:6379> get name1
"value"
127.0.0.1:6379> get name1
(nil)
-- xx用法
127.0.0.1:6379> keys *
1) "name"
2) "asd"
127.0.0.1:6379> set name1 value ex 4 xx
(nil)
127.0.0.1:6379> set name value ex 4 xx
OK
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> keys *
1) "asd"
EX seconds : 将键的过期时间设置为 seconds 秒。 执行 SET key value EX seconds 的效果等同于执行 SETEX key seconds value。
PX milliseconds : 将键的过期时间设置为 milliseconds 毫秒。 执行 SET key value PX milliseconds 的效果等同于执行 PSETEX key milliseconds value 。
NX : 只在键不存在时, 才对键进行设置操作。 执行 SET key value NX 的效果等同于执行 SETNX key value
XX : 只在键已经存在时, 才对键进行设置操作。
从 Redis 2.6.12 版本开始, SET 命令只在设置操作成功完成时才返回 OK ; 如果命令使用了 NX或者 XX 选项, 但是因为条件没达到而造成设置操作未执行, 那么命令将返回空批量回复(NULL Bulk Reply)
- 获取
mget key [key ...]
get key
- 是否存在
exists key [key ...]
--------------------------------------------------------以下为例子----------------------------------------
127.0.0.1:6379> exists name1 name2
(integer) 2
127.0.0.1:6379> exists name1 names
(integer) 1
- 删除
del key [key ...]
--------------------------------------------------------以下为例子----------------------------------------
127.0.0.1:6379> del name1 names
(integer) 1
- 过期
expire key seconds
--------------------------------------------------------以下为例子----------------------------------------
127.0.0.1:6379> expire name1 5
(integer) 0
127.0.0.1:6379> expire name2 5
(integer) 1
127.0.0.1:6379> get name2
"value2"
127.0.0.1:6379> get name2
(nil)
- 计数
incr key
incrby key increment
--------------------------------------------------------以下为例子----------------------------------------
127.0.0.1:6379> get age
"30"
127.0.0.1:6379> incr age
(integer) 31
127.0.0.1:6379> incrby age -4
(integer) 27
list (列表)
- 设置
rpush key value [value ...]
lpush key value [value ...]
blpop key [key ...] timeout -----阻塞队列
--------------------------------------------------------以下为例子----------------------------------------
127.0.0.1:6379> lpush name3 value1 value2 value3 value4
(integer) 4
- 获取
lpop key
rpop key
lrange key start stop
ltrim key start stop
llen key
--------------------------------------------------------以下为例子----------------------------------------
127.0.0.1:6379> lpop name3
"value4"
127.0.0.1:6379> lrange name3 0 -1
1) "value3"
2) "value2"
3) "value1"
127.0.0.1:6379> ltrim name3 0 -2
OK
127.0.0.1:6379> lrange name3 0 -1
1) "value3"
2) "value2"
说明:lrange 是展示,ltrim是截取。-1为倒数第一个,-2为倒数第二个,严禁使用O(n),性能问题。
hash (字典)
- 设置
hset key field value
hmset key field value [field value ...]
--------------------------------------------------------以下为例子----------------------------------------
127.0.0.1:6379> hset books java "think in java"
(integer) 1
127.0.0.1:6379> hmset books sql "think in sql" mysql "thiink in mysql"
OK
- 获取
hgetall key
hget key field
hlen key
--------------------------------------------------------以下为例子----------------------------------------
127.0.0.1:6379> hgetall books
1) "java"
2) "think in java"
3) "sql"
4) "think in sql"
5) "mysql"
6) "thiink in mysql"
127.0.0.1:6379> hget books java
"think in java"
- 计数
hincrby key field increment
--------------------------------------------------------以下为例子----------------------------------------
127.0.0.1:6379> hset books page 1
(integer) 1
127.0.0.1:6379> hincrby books page 10
(integer) 11
127.0.0.1:6379> hget books page
"11"
set (集合)
- 设置
sadd key member [member ...]
--------------------------------------------------------以下为例子----------------------------------------
127.0.0.1:6379> sadd person hand mouse eyes
(integer) 3
- 获取
smembers key
sismember key member --相当于contain
scard key --相当于len
spop key [count] --弹出获取
--------------------------------------------------------以下为例子----------------------------------------
127.0.0.1:6379> smembers person
1) "mouse"
2) "hand"
3) "eyes"
127.0.0.1:6379> sismember person hand
(integer) 1
127.0.0.1:6379> scard person
(integer) 3
127.0.0.1:6379> spop person 2
1) "hand"
2) "mouse"
127.0.0.1:6379> smembers person
1) "eyes"
zset(有序列表)
- 设置
zadd key [NX|XX] [CH] [INCR] score member [score member ...]
--------------------------------------------------------以下为例子----------------------------------------
127.0.0.1:6379> zadd result nx ch 80 lilei 90 chehong
(integer) 2
127.0.0.1:6379> zadd result nx ch 85 lilei
(integer) 0
127.0.0.1:6379> zadd result ch 85 lilei
(integer) 1
有关zadd命令有两点需要注意:
Redis 3.2为zadd命令添加了nx、xx、ch、incr四个选项:
nx:member必须不存在,才可以设置成功,用于添加.
xx:member必须存在,才可以设置成功,用于添加.
ch:返回此次操作后,有序结合元素和分数发生变化的个数.
incr: 对score进行添加操作,相当于后面介绍的zincrby.
有序集合相比集合提供了排序字段,但是也产生了代价,zadd的时间复杂度是O(log(n)),sadd的时间复杂度为O(1).
- 获取
zrevrange key start stop [WITHSCORES]
zrange key start stop [WITHSCORES]
zcard key
zscore key member
zrank key member
zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
zrem key member [member ...]
--------------------------------------------------------以下为例子----------------------------------------
127.0.0.1:6379> zrange result 0 -1
1) "lilei"
2) "chehong"
127.0.0.1:6379> zrevrange result 0 -1
1) "chehong"
2) "lilei"
127.0.0.1:6379> zcard result
(integer) 2
127.0.0.1:6379> zscore result lilei
"85"
127.0.0.1:6379> zrank result lilei
(integer) 0
127.0.0.1:6379> zrank result chehong
(integer) 1
127.0.0.1:6379> zrem result lilei
(integer) 1
127.0.0.1:6379> zrange result 0 -1
1) "chehong"
分布式锁
set key value [expiration EX seconds|PX milliseconds] NX
消息队列
blpop key [key ...] timeout
限量发放奖品,争抢
incrby key -1
pv uv 统计--HyperLogLog ‘
- 添加
pfadd key element [element ...]
--------------------------------------------------------以下为例子----------------------------------------
127.0.0.1:6379> pfadd page1 user1
(integer) 1
127.0.0.1:6379> pfadd page1 user2
(integer) 1
127.0.0.1:6379> pfadd page1 user2 user3 user5 user5 user3 user6 user3
(integer) 1
- 获取
pfcount key [key ...]
--------------------------------------------------------以下为例子----------------------------------------
127.0.0.1:6379> pfcount page1
(integer) 5
布隆过滤器
需要安装redis 布隆插件
网友评论