redis-cli命令
大约 2 分钟
redis-cli命令
登录
redis-cli -h localhost -p 6379 -a 1234 #登录 -p -h可省略
#-a也可省略
redis-cli
AUTH 1234 #进入交互后输入密码
ping #测试心跳 返回pong正常
select 0 #选择库
help @genneric #查通用组命令帮助文档
help set #查具体命令文档
通用
#在生产环境下,不推荐使用keys 命令,因为这个命令在key过多的情况下,效率不高
keys #查看符合模板的所有key 支持通配符 key *
del #删除某个key 支持删除多个
exists #是否存在
expire #设置有效期
ttl #查剩余有效期 未设置返回-1,到期返回-2
String
- string、int、float都是String类型,底层都是byte[]存储,但是编码方式不同
- key的层级结构:
项目名:业务名:类型:id
set key value
get key
mset k1 v1 k2 v2
mget k1 k2
incr key #自增
decy key #自减 可用自定义自增步长代替
incrby key num #自定义自增步长
incrbyfloat key num #自定义浮点型自增步长
setnx key value #不存在增加
setex key time value#含有效期增加
set botuer:user:1 '{"id":1, "name": "Jack", "age": 21}'
Hash
- 类似HashMap
hset key field value
hmset key f1 v1 f2 v2
hget key field
hmget key f1 f2
hgetall key #获取key的所有字段和值
hkeys key #获取key的字段
hincrby key field #自定义自增步长
hsetnx key field value #不存在增加
List
- 类似LinkedList,双向链表,支持双向检索
- 有序
- 可重复
- 插入、删除速度快
- 查询速度一般
- 多用于存储有序数据,如点赞列表、评论列表
lpush key element... #可插入多个
rpush key element...
lrange key star end #按索引查,0开始
#查,并移除
lpop key [几个] #可取出多个
rpop key [几个]
blpop key timeout #取一个,设置超时时间,临时阻塞
Set
- 类似HashSet
- 无序
- 不重复
- 查找速度快
- 支持交、并、差
sadd key member... #添加一个或多个
srem key member... #移除一个或多个
scard key #查个数
smembers key #查全部
sismember key member #判断是否含有某元素
sinter k1 k2 #交集
sdiff k1 k2 #差集
sunion k1 k2 #并集
SortedSet
- 类似TreeSet,但底层差异很大,SortedSet“排序Set”,是对每个元素score属性排序,默认生序
- 排序
- 不重复
- 查询速度快
- 多用于排行榜
zadd key s1 m1 s2 m2
zrem key member
zscore key member #查分
zcard key #查个数
zrank key member #查排名(默认升序)
zcount key min max #查一定范围score的个数
zrange key min max #查指定排名的元素
zrangebyscore key min max #查一定范围score的元素
zrev... #降序查
zincrby key 步长 menber#让指定score自增
zinter k1 k2
zdiff k1 k2
zunion k1 k2
其他
- 位图 ( Bitmaps ) --- 签到
- 基数统计 ( HyperLogLogs ) --- 统计
- 地理坐标(Geo) --- 附近
- 流(Streams) --- 队列
