redis命令篇

## 键值对 string
> set name shawn
OK
> get name
"shawn"
> exists name
(integer) 1
> del name
(integer) 1
> get name
(nil)

## 批量键值对 string
> set name1 shawn1
OK
> set name2 shawn2
OK
> mget name1 name2
1) "shawn1"
2) "shawn2"

> mget name1 name2 name3
1) "shawn1"
2) "shawn2"
3) (nil)

> mset name1 a name2 b name3 c
OK
> mget name1 name2 name3
1) "a"
2) "b"
3) "c"
> exists name1 name2 name3 name4
(integer) 3
> del name1 name2 name4
(integer) 2

## 过期
> set name shawn
OK
> get name
"shawn"
> expire name 5
(integer) 1
## wait for 5s
> get name
(nil)
> setex name 5 shawn
OK
## wait for 5s
> get name
(nil)

## 如果key存在 不会覆盖原值
> setnx name shawn ## 创建成功
(integer) 1
> setnx name lilei ## 创建失败
(integer) 0

## 计数
> set age 30
OK
> incr age
(integer) 31
> incrby age 3
(integer) 34
> incrby age -4
(integer) 30

> set age 30
OK
> decr age
(integer) 29
> decrby age 5
(integer) 24
> decrby age -6
(integer) 30


## 最值是long的最值,超过会报错 
## ERR increment or decrement would overflow
> set age 9223372036854775807
OK
> incr age
(error) ERR increment or decrement would overflow

## list
## 右边进左边出:队列 
## 右边进右边出:栈
> rpush books java js sql
(integer) 3
> llen books
(integer) 3
> get books
(error) WRONGTYPE Operation against a key holding the wrong kind of value
> rpop books
"sql"
> lpop books
"java"

##index index=-n 表示倒数第n个元素
> rpush books java js sql
(integer) 3
> lindex books 1 ## o(n)
"js"

## range
> lrange books 0 1 ## o(n)
1) "java"
2) "js"
> lrange books 1 0
(empty list or set)
> lrange books 1 -1
1) "js"
2) "sql"
> lrange books 1 -2
1) "js"
> lrange books 1 -3
(empty list or set)


## trim  o(n) 只保留start-end之间的元素,其余删掉
> ltrim books 0 1
OK
> llen books
(integer) 2
> lrange books 0 3
1) "java"
2) "js"

## hash hset hget hgetall
> hset books java "thinking in java" ## hset key field value
(integer) 1
> hset books golang "concurrency in go"
(integer) 1
> hset books python "python cookbook"
(integer) 1
> hget books java ## hget key field
"thinking in java"
> hgetall books ## hgetall key----> field value间隔出现 
1) "java"
2) "thinking in java"
3) "golang"
4) "concurrency in go"
5) "python"
6) "python cookbook"

> hset books java "onjava 8th" ## 如果field存在,则为更新,所以放回0
(integer) 0
> hget books java
"onjava 8th"

## hlen
> hlen books
(integer) 3

## 批量 hmset key field1 value1 field2 value2...
> hmset books java "thinking in java" python "python cookbook" golang "concurrency in go"
OK

## 计数 没有hdecr/hdecyby/hincr
> hset user age 1
(integer) 1
> hincrby user age 2
(integer) 3
> hincrby user age -3
(integer) 0


## set 
## sadd 如果有重复,不会重复添加
> sadd books java
(integer) 1
> sadd books java
(integer) 0
> sadd books js sql ## 批量
(integer) 2
## set无序
> smembers books
1) "js"
2) "java"
3) "sql"

## set是否存在某个元素
> sismember books java
(integer) 1
> sismember books rust
(integer) 0

## 计算set长度
> scard books
(integer) 3

## spop弹出一个
> spop books 1
1) "java"
> spop books
"sql"


> del books
(integer) 1
> sadd books java js sql python
(integer) 4
> smembers books
1) "js"
2) "java"
3) "python"
4) "sql"
> spop books 4
1) "js"
2) "java"
3) "sql"
4) "python"
> smembers books
(empty list or set)

## zset
## zadd
> zadd books 9.0 "thinking in java"
(integer) 1
> zadd books 8.6 "thinking in sql"
(integer) 1
> zadd books 8.8 "head first sql"
(integer) 1

## 正序排列
> zrange books 0 -1 ## start stop排名范围
1) "thinking in sql"
2) "head first sql"
3) "thinking in java"

> zrange books 0 1
1) "thinking in sql"
2) "head first sql"
> zrange books 0 0
1) "thinking in sql"
> zrange books 0 2
1) "thinking in sql"
2) "head first sql"
3) "thinking in java"
> zrange books 1 2
1) "head first sql"
2) "thinking in java"


## 倒序排列
> zrevrange books 0 -1 ## start stop排名范围
1) "thinking in java"
2) "head first sql"
3) "thinking in sql"


## count
> zcard books
(integer) 3

## 获取score
> zscore books "thinking in java"
"9"
> zscore books "thinking in sql"
"8.5999999999999996" ## 使用double存储,存在精度问题

## 排名
> zrank books "thinking in java"
(integer) 2

## 根据区间取值
> zrangebyscore books 8.0 8.9
1) "thinking in sql"
2) "head first sql"

> zrangebyscore books 8.6 8.8 ## [8.6,8.8]
1) "thinking in sql"
2) "head first sql"

> zrangebyscore books -inf 8.8 ## inf表示无穷 
1) "thinking in sql"
2) "head first sql"

> zrangebyscore books -inf 8.8 withscores limit 0 1 ## withscores带score打印出来,limit分页
1) "thinking in sql"
2) "8.5999999999999996"

## zrem 删除
> zrem books "thinking in sql"
(integer) 1



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值