Redisの基本コマンドとデータ型の使用

基本コマンド

# 切换数据库,index是数据库的下边,总共16个,默认为0
select index
# 查看当前数据库大小
dbsize
# 清空当前库
flushdb
# 清空全部
flushall

文字列型

# 存值
set key value
# 取值
get key
# 键是否存在
exists key
# 查看所有的key
keys *
# 移除键,1代表当前库
move key 1
# 设置过期时间,单位秒
expire key 10
# 查询key的过期时间,-2已过期,-1永不过期,其他整数表示倒计时
ttl key
# 查看键的值的类型
type key
# 追加键的值
append key value
# 键的值长度
strlen key
# 自增1
incr key
# 自减1
decr key
# 指定增量
incrby key 10
# 指定减量
decrby key 10
# 截取键的值,相当于java的substring,0 -1 表示全部
getrang key start end 
# 替换,value的长度决定替换多少位
setrang key start value
# 如果存在设置过期时间
setex key time value
# 如果不存在设置值,存在不会覆盖
setnx key value
# 批量设置值
mset k1 v1 k2 v2 ...
# 批量获取
mget k1 k2 k3 ...
# 不存在批量设置,原子性操作,要么一起成功,要么一起失败
msetnx k1 v1 k2 v2...
# 先get在set
getset key value

リスト

# 从左边存值
lpush key value
# 从左边取值 0 -1 表示获取全部
lrange key start end
# 从右边存值
rpush key value
# 左移除元素第一个元素
lpop key
# 右移除第一个元素
rpop key
# 获取指定下标的值
lindex key index
# 键的值长度
llen key
# 移除指定值,移除的数量
lrem key count value
# 截取指定的长度
ltrim key start end
# 移除最后一个元素添加到新的list中
rpoplpush source destination
# 键是否存在
exists key
# 给指定下标添加值,键必须存在,替换原来的值
lset key index value
# 在某个值前面或后面插入值
linsert key before|after piovt value

セットする

# 存值
sadd key value 
# 取值
smembers key
# 是否存在某个值,1存在,0不存在
sismember key value
# 获取值的长度
scard key
# 移除某个值
srem key value
# 随机获取值
srandmember key
# 随机删除值
spop key
# 将指定的值移动到另一个键中
smove sourcekey destinationkey value
# key1 在 key2 中的差集
sdiff key1 key2
 # 交集
 sinter key1 key2
 # 并集
 sunion key1 key2

ハッシュ

# 存值
hset key field value
# 取值
hget key field
# 存多个值
hmset key field1 value field2 value ...
# 取多个值
hmget key field1 field2 ...
# 获取所有的值
hgetall key
# 删除某个值
hdel key field
# 获取键的值的长度
hlen key
# 判断键的某个字段是否存在
hexists key field
# 获取键中所有的field
hkeys key
# 获取键中所有的value
hvals key

zset

# 存值,score 排序
zadd key score value
# 取值 0 -1 获取全部,顺序
zrange key start end
# 取值 0 -1 获取全部,逆序
zrevrange key start end
# 移除一个元素
zrem key value
# 查看长度
zcard key
# 获取区间的数量
zcount key min max

上記では、Redisで一般的に使用されるコマンドの5つの基本的なデータ型について説明し、次にRedisの3つの特別なデータ型について説明します。

地理空間

# 通过一个示例来演示Geo的使用

# GEOADD 添加城市位置
# 语法:geoadd key 经度 纬度 名称
# 示例:添加一组城市的地理位置
GEOADD china:city 104.08 30.65 jinjiang
GEOADD china:city 104.06 30.67 qingyang
GEOADD china:city 104.05 30.69 jinniu
GEOADD china:city 104.04 30.64 wuhou

# 查询某个城市的位置
# 语法:geopos key 名称
GEOPOS china:city jinjiang

# 查询两个位置之间的距离
# 语法:geodist key 名称1 名称2 单位(m、km...默认m)
GEODIST china:city jinniu wuhou			====>5642.9876m
GEODIST china:city jinniu wuhou km		====>5.6430km

# 给定坐标和半径找出半径内的元素
# 语法:georedius key 经度 纬度 半径 单位(默认m)
# 查找 104,30 半径100km的城市
GEORADIUS china:city 104 30 100 km

# 查询某个城市周围的元素
# 语法:georadiusbymember key 名称 半径 单位
# 查询jinniu 10km内的元素
GEORADIUSBYMEMBER china:city jinniu 10 km

# 查询某个城市经纬度的字符串(了解)
# 语法:geohash key 名称
# 查询到的数据为经纬度的11位字符串
GEOHASH china:city jinniu				====>wm3yxdyyhw0

# geo 没有提供删除坐标的命令,但是他的底层是zset有序集合,所以可以使用zset命令去操作geo
# 查看所有的元素
ZRANGE china:city 0 -1
# 移除某个元素
ZREM china:city jinniu

ハイパーログログベース統計

# Hyperloglog 在实际业务中,可以用来如统计网页访问数量等功能,它占用的内存是固定的2的64次方,约12kb的内存
# pfadd 存入数据
# 语法:pfadd key 元素1 元素2 .....
# 存入两组数据
PFADD k1 1 2 3 4 5 6 7 8 9
PFADD k2 1 2 3 4 5 6 7 8 9 2 3 5
# pfcount 统计源元素的个数
# 语法 pfcount key
PFCOUNT k1		====>9个
PFCOUNT k2		====>9个
# 合并两个键形成新的键
# 语法 pfmerge 新key 源key 源key
PFMERGE k3 k1 k2

ビットマップ

# 比如在实际中,登录和未登录、活跃不活跃、打卡未打卡这种只有两种状态的,都可以用位图来统计。
# Bitmaps 操作二进制来记录,非0即1
# setbit 添加数据
# 语法:setbit key 名称 value
# 示例:一周打卡记录:setbit 键 周几 值(0-未打卡,1-打卡)
SETBIT sign 1 1
SETBIT sign 2 1
SETBIT sign 3 1
SETBIT sign 4 0
SETBIT sign 5 0
SETBIT sign 6 1
SETBIT sign 7 0
# getbit 查看某一个的值
# 语法:getbit key 名称
# 示例:查看周4的记录
getbit sign 4		====> 0
# bitcount 统计值为1的数量
# bitcount key
# 示例:查看一周打卡的天数
bitcount sign

おすすめ

転載: blog.csdn.net/weixin_45481406/article/details/109344382