LINUX中的redis数据类型的基本命令

String(字符串)

使用场景:

  • 计数器
  • 统计多单位的数量
  • 粉丝数
  • 对象缓存存储

#设置值
set key value

#获得值
get key

#获得所有的key值
keys *

#判断某一个key是否存在
exists key

#追加字符串,如果当前key不存在,就相当于设置值
append key “value”

#获取字符串的长度
strlen key

#自增1
incr key

#自减一
decr key

#自定义增量
incrby key value

#自定义减量
decrby key value

#截取字符串
getrange key 开始索引 结束索引

#截取所有字符串
getrange key 0 -1

#替换指定位置开始的字符串
setrange key 开始索引 结束索引

#设置过期时间 setex(set with expire)
setex key 过期时间 value

#获取某一个key的剩余时间
ttl key

#不存在时再设置setnx(set if not exist),分布式锁中常常使用。如果存在就创建失败
setnx key value

#同时设置多个值
mset k1 v1 k2 v2 k3 v3

#同时获取多个值
mget k1 k2 k3

#原子性操作msetnx,一起成功,一起失败
msetnx k1 v1 k2 v2

#存储对象,值为json类型
set k1:k2:k3 value

#先get再set,如果不存在值则返回nil,如果存在,获取原来值并赋予新的值
getset key value

List(列表)

使用场景:

  • 消息队列

#将一个值或多个值,插入到列表头部(左)
lpush key value

#获取list的所有值
lrange key 0 -1

#获取list指定区间的值
lrange key 开始索引 结束索引

#将一个值或者多个值插入列表尾部(右)
rpush key value

#移除列表第一个元素
lpop key

#移除列表最后一个元素
rpop key

#通过索引获得值
lindex key 索引

#列表的长度
llen key

#移除list中指定个数的value
lrem key 个数 value

#通过索引截取指定的长度,这个操作会影响到原数据,起修剪的作用
ltrim key 开始索引 结束索引

#移除列表最后一个元素,并将其移动到新的列表中
rpoplpush key newKey

#判断列表是否存在
exists key

#将列表中指定索引位置的值替换掉,如果存在就会执行,不存在就会报错
lset key 索引 value

#将某个值插入到已经存在的元素的前面或者后面
linsert key after/before value newValue

Set(集合)

#添加元素
sadd key value

#查看set的所有值
smember key

#判断某一个值是否存在
sismember key value

#获取set集合中的元素个数
scard key

#移除set中的指定元素
srem key value

#随机抽取一个元素
srandmember key

#随机抽取指定个数的元素
srandmember key 个数

#随机移除元素
spop key

#将一个指定的值,移动到另外一个集合
smove key newKey value

#差集
sdiff key1 key2

#交集
sinter key1 key2

#并集
sunion key1 key2

Hash(哈希)

使用场景:

  • 对象的存储

#插入一个值
hset 集合 key value

#插入多个值
hset 集合 key value key value key value

#获取一个字段值
hget 集合 key

#获取多个字段值
hget 集合 key key key

#获取全部数据
hgetall 集合

#删除指定的key,value也会跟着消失
hdel 集合 key

#获取集合中的数量
hlen 集合

#判断集合中指定字段是否存在
hexists 集合 key

#只获得所有的key
hkeys 集合

#只获得所有的value
hvals 集合

#指定增量
hset 集合 key 增量

#存在设置,不存在不能设置
hsetnx 集合 key value

Zset(有序集合)

使用场景:

  • 排行榜
  • 成绩,工资排序
  • 普通消息,重要消息的权重判断

#添加一个值
zadd key 计数位 value

#添加多个值
zadd key 计数位 value 计数位 value 计数位 value

#获取所有值
zrange key 0 -1

#从小到大排序
zrangebyscore key -inf +inf

#从大到小排序
zrevrange key 0 -1

#从小到大排序显示附带字段
zrangebyscore key -inf +inf with计数位

#移除有序集合中指定的元素
zrem key value

#获取集合中的个数
zcard key

geospatial(地里位置)

使用场景:

  • 朋友的定位
  • 附近的人
  • 距离计算

#添加地理位置
geoadd key 经度 纬度 value

#获取指定key的经纬度
getpos key value

#两个地理位置之间的距离
单位:

  • m米
  • km千米
  • mi英里
  • ft英尺
    geodist key value1 value2 单位

#以给定的精度为中心,找出某一半径内的元素
georadius key 经度 纬度 距离 单位

#以给定的精度为中心,找出某一半径内的元素,并显示距离
georadius key 经度 纬度 距离 单位 withdist

#以给定的精度为中心,找出某一半径内的元素,并显示他人的信息
georadius key 经度 纬度 距离 单位 withcoord

#以给定的精度为中心,找出某一半径内的元素,并显示指定数量的信息
georadius key 经度 纬度 距离 单位 withcoord/withdist count 显示的数量

#找出位于指定元素周围的其他元素
georadiusbymember key 元素 距离 单位

#返回指定元素的hash字符串
geohash key 元素

geo底层的实现原理就是zset,我们可以使用zset命令来操作geo,比如删除,查看所有元素等命令

hyperloglog(基数统计)

什么是基数? 不重复的元素,可以接受误差
优点:占用内存固定,只需要12kb内存

#创建元素
pfadd key value1 value2 value3 value4 value5 value6 value7 value8 value9

#统计元素中的基数数量
pfcount key

#合并两组元素到一个新的key中
pfmerge newKey key1 key2

bitmaps(位存储)

bitmaps数据结构,都是二进制来进行存储
使用场景:
只要是只有两个状态的,都可以用bitmaps

#存值
setbit key 计数位 0/1

#取值
getbit key 计数位

#统计全部
bitcount key

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值