共计 2573 个字符,预计需要花费 7 分钟才能阅读完成。
title: Redis 基本操作
categories:
- [Redis]
tags:
- [数据库]
date: 2021/01/06
作者:hackett
微信公众号:加班猿
一、redis 根本数据类型
- redis 保留的数据都是依照键值对来保留
- 键(key)
- 值(value)
- 键的数据类型都是 字符串
-
值的类型有以下五种:
- 字符串(string)
- 哈希(hash)
- 列表(list)
- 无序汇合(set)
- 有序汇合(zset)
二、字符串(string)
增加批改字符串
-
set 键 值
- 如果键不存在,就是增加
- 如果键存在,就是批改
set user tom
# 增加一个键 user 值为 tom
set user hackett
# 把 user 的值改为 hackett
-
setex 键 过期工夫 值
- 过期工夫单位为秒
setex user 5 jerry
# 增加一个键 user 值为 jerry,过期工夫为 5 秒
- 增加多个键值对 — mset 键 1 值 1 键 2 值 2 键 3 值 3 ……
mset user1 tom user2 hackett user3 jerry
# 同时增加 3 个键值对
- 已有值前面追加 — append 键 值
append user1 haha
# 向 user1 中追加值 haha
获取值
- get 键
get user
# 获取 user 的值
- mget 键 1 键 2 键 3 ……
mget user1 user2 user3
# 获取 3 个键的值
删除键
- del 键 1 键 2 键 3
del user1 user2 user3
# 删除 3 个键
三、键命令
查找键
- keys 键名
- 能够反对 *
keys user1
# 查看键 user1 是否存在
keys *
# 查看所有键
判断键是否存在
- exists 键
- 如果存在,返回 1
- 如果不存在,返回 0
exists user1
# 判断 user1 是否存在
查看对应键的 value 类型
- type 键
type user1
# 查看 user1 对应的值的类型
设置已有键的过期工夫
- expire 键 秒数
expire user1 5
# 设置 user1 的过期工夫为 5s
查看键过期工夫
- ttl 键
- 返回 0,代表无效工夫,单位:秒
- 返回 -1,代表永远无效
- 返回 -2,代表键不存在
ttl key
# 查看 key 的无效工夫
四、哈希 hash
增加值
- hset 键 字段 值
hset user1 name tom
# 减少一个 hash 类型的键值对,字段为 name,值为 tom
增加多个值
- hmset 键 字段 1 值 1 字段 2 值 2 ……
hmset user2 name jerry sex female
# 增加 user2 的键,字段有两个
获取字段
- hkeys 键
- 获取制订键的所有字段名
hkeys user2
# 获取键 user2 的所有字段
获取字段对应的值
- hget 键 字段
hget user2 sex
# 获取 user2 键字段 sex 的值
获取多个字段的值
- hmget 键 字段 1 字段 2
hmget user2 name sex
# 获取 user2 键字段 name,sex 的值
获取键所有字段的值
- hvals 键
hvals user2
# 获取 user2 所有字段的值
获取键所有字段和值
- hgetall 键
hgetall user2
# 获取 user2 的字段和值
删除字段
- hdel 键 字段
hdel user2 sex
# 删除 user2 的 sex 字段
删除键
- hdel 键
hdel user2
# 删除 user2 的键
五、列表 list
增加值
- lpush 键 值 1 值 2 ……
- 从列表左侧增加值
lpush luser1 tom
# 新建一个 luser1 的键,在左侧增加 tom 的值 值:tom
- rpush 键 值 1 值 2 ……
- 从列表右侧增加值
rpush luser1 jerry
# 新建一个 luser1 的键,在右侧增加 tom 的值 值:tomjerry
插入值
- linsert 键 before 或者 after 值 新值
- 在制订的值后面或者前面插入新值
linsert luser1 before jerry 11
# 在 jerry 后面插入新值 11 值:tom11jerry
linsert luser1 after jerry 22
# 在 jerry 前面插入新值 22 值:tom11jerry22
获取
- lrange 键 start stop(返回列表里指定范畴的值)
- 索引从左侧开始,第一个值的索引为 0
- 索引能够是正数,示意从尾部开始计数,如:- 1 代表最初一个值,- 2 代表倒数第二个值
- start,stop 为要获取值的索引
lrange luser1 0 -1
# 获取开始到结尾的值
lrange luser1 2 -1
# 获取从第三个到最初的值
批改
- lset 键 索引 值
- 改指定索引的值
lset luser1 1 haha
# 把第二个元素的值改为 haha
删除值
- lrem 键 count 值
- count = 0 删除指定的所有值
- count < 0 删除从右往左指定数量的值
- count > 0 删除从左往右指定数量的值
lrem luser2 -1 h0
# 从后往前 / 从右往左,删除第一个 h0
lrem luser2 0 h0
# 删除所有的 h0
六、无序汇合 set
增加值
- sadd 键 值 1 值 2 值 3 ……
sadd suser aa bb cc
# 给键 suser 增加三个值
获取值
- smembers 键
- 获取汇合的值
smembers suser
# 获取键 suser 所有的值
删除值
- srem 键 值
- 删除指定的值
srem suser aa
# 删除键 suser 的值 aa
七、有序汇合 zset
增加值
- zadd 键 score1 值 1 score2 值 2
- 增加值
zadd zuser 1 aa 3 bb 2 cc 5 dd
# 给键 zuser 增加 4 个值,并依照 score 从小到大主动排序 值:aaccbbdd
获取值
- zrange 键 start stop [withscores]
- start 从 0 开始
- 最初一个索引为 -1
- withscores 代表同时获取 score
zrange zuser 0 -1 withscores
# 获取键 zuser 的所有值
通过 score 获取值
- zrangebyscore 键 min max
- min 代表 score 起始值
- max 代表 score 完结值
zrangebyscore zuser 2 6
# 获取 score 从 2 到 6 的值
通过值获取 score
- zscore 键 值
- 失去指定值的 score
zscore zuser dd
# 失去值 dd 的 score
删除
- zrem 键 值
- 删除指定的值
zrem zuser dd
# 删除值 dd
通过 score 删除值
- zremrangebyscore 键 min max
- min 是要删除 score 的最小值
- max 是要删除 score 的最大值
zremrangebyscore zuser 0 10
# 删除 score 从 0 到 10 到值
如果你感觉文章还不错,记得 ”点赞关注“
关注我的微信公众号【加班猿】能够获取更多内容
正文完