redis 基本操作

本文详细介绍了Redis中的十大数据类型,包括String的设置与过期操作,List的push和pop,Hash的属性添加与删除,Set的成员管理,SortedSet的排序功能,以及Geo的地理位置操作,HyperLogLog的基数统计,Bitmap的位操作,BitField的位域处理,Stream的数据流管理和相关操作。这些数据类型丰富了Redis的功能,使其在缓存、计数、发布订阅等多个场景中得到广泛应用。
摘要由CSDN通过智能技术生成

Redis 十大数据类型

  1. Redis String (字符串) 常用于分布式锁,点赞加一
    set key value [NX|XX] [GET] [EX seconds|PX milliseconds|EXAT unix-time-seconds|PXAT un
    EX seconds 以秒为单位设置过期时间
    PX milliseconds 以毫秒为单位设置过期时间
    EXAT timestamp 设置以秒为单位的unix时间戳所对应的时间为过期时间
    PXAT millisenconds-timestamp 设置以毫秒为单位unix时间戳所对应的时间为过期时间
    NX 键不存在时设置键值
    XX 键存在是设置键值
    KEEPTTL 保留设置前指定键的生存时间
    GET 返回键指定原本值,不存在返回nil
set k1 v1 nx  #不存在设置
set k1 v1 xx  #存在设置
set k1 v1 get #替换值获取旧值
set k1 v1 ex 10  #设置过期时间10s
set k1 v1 px 10000  #设置过期时间10S
set k1 v1 exat 154885245  #设置过期时间戳
set k1 v1 pxat 458685124  #设置毫秒过期时间戳
set k1 v1 keepttl  #设置过期时间并保留之前设置的过期时间 
mset k1 v1 k2 v2   #同时设置多个键值
mget k1 k2   #同时获取多个键值
msetnx k1 v1 k2 v2  #当k1k2都存在是设置成功
getrange k1 start end  #截取开始到结束位置的值
setrange k1 start v2  #从开始位置开始替换值
incr k1 #数值自增
incrby k1 2 #按照指定步长自增
decr k1 #数值自减
decrby k1 2 #按照指定步长自减
strlen k1  #获取长度
append k1 xx  #追加字符
getset k1 v1  #先get后set

  1. Redis List(列表) 一个双端链表结构 容量是2^32-1个元素 大概40多亿 主要功能有push、popdeng
lpush k1 1 2 3 4 5 #左侧添加 后进先出
rpush k1 1 2 3 4 5 #右侧追加 先进先出
lrange k1 start  end  #从左向右遍历列表
lpop k1 #从左侧弹出一个元素
rpop k1 #从右侧弹出一个元素
lindex k1 index  #安装下标获取元素
llen k1 #获取列表中元素的个数
lrem k1 count val #从列表中删除count个val
ltrim k1 start end #截取start-end 后返回
rpoplpush k1 k2  #k1出队k2入队
lset k1 index val  #设置index位置为val
linsert k1 after|before val val1 #在val前或者后添加val1
  1. Redis Hash(哈希表,对象) kv模式不变,v也是键值对
hset key field value  #添加属性
hmset key field value ...  #批量添加
hget key field  #获取属性
hmget key field field #批量获取
hgetall key  #获取所有
hdel key field  #删除属性
hlen key  #获取元素数量
hexists key field  #判断某个属性是否存在
hkeys key  #获取key的所有field
hvals key  #获取key的所有value
hincrby key field len #key的field按len增加
hincrbyfloat key field float #key的field按float增加
hsetnx key field #不存在赋值,存在了无效
  1. Redis Set(集合)
sadd k1 1 2 3 #添加元素
smenbers k1 #遍历集合中所有元素
sismember k1 1 #k1集合中是否存在元素1
srem k1 1 #删除集合k1中元素1
scard k1 #获取集合中元素的个数
sramdomember k1 1 #随机抽取集合k1中1个元素
spop k1 1 #从集合中弹出1个元素
smove k1 k2 1 #将元素1从k1集合中移动到k2中
sdiff k1 k2 #k1中存在k2不存在的
sunion k1 k2 #连接两个集合
sinter k1 k2 #两个集合都存在
sintercard numkeys key [key ...] [LIMIT limit] #交集个数统计

  1. Redis ZSet(有序集合) 在set基础上每个val前加一个score 用来排序
zadd key score member #添加元素
zrange key start end  #按元素分数从小到大返回strat-end区间元素
zrevrange key start end #按元素分数从大到小返回strat-end区间元素
zrangebyscore key min max #获取指定分数区间范围的元素
zscore key member #获取某个元素的分数
zcard key #获取集合数量
zrem key member #删除元素
zincry key increment member #增加某个元素的分数
zcount key min max #获取某个分数范围内元素的个数
zmpop 
  1. Redis GEO(地理位置,经纬度)
geoadd bj 116.404177 39.909652 tam #添加北京天安门坐标
geopos bj tam #获取北京天安门坐标
geodist bj tam cc #获取天安门长城的距离
geodist bj tam gg km #获取北京天安门到故宫多少千米
geohash bj gg #获取北京故宫的hash值
georadius bj 116.300552 39.873015 100 km  #获取坐标值100公里内的地址
GEORADIUSBYMEMBER bj gg 100 km #根据元素获取周边地址
  1. Redis HyperLogLog(基数统计,去重统计)
pfadd key 1 2 3 3 #统计key中不同元素的数量
pfcount key #获取不重复元素的个数
pfmerge k1 k2 k3 #合并k2 k3 到 k1
  1. Redis BitMap(位图)
setbit key 1 0 #设置第一位为0
getbit key 1 #获取key第一位标志
bitcount key 1 2 #统计key第一位到第二位有几个1
strlen key  #统计key的长度
bitop and k1 k2 k3 #将k2 k3做and运算
bitpos bi 0 #寻找第一个设置为0的位置
  1. Redis BitField(位域)可以将redis字符串看成是二进制数组可以对这个数组中任意位进行访问
bitfield key get i8 0 #从0开始获取有符号的8位二进制码
bitfield key set i8 8 108 #从8开始将后八位设置成108的二进制码
bitfield key incrby i8 8 1 #从8开始将后八位自增1 默认回绕处理溢出,

  1. 10.Redis Stream(流)
xadd key * k1 v1 #自动生成id 添加消息
xadd key zj k1 v1  #手动生成id 添加消息
xrange key start end #遍历stream
xrevrange key end start  #倒叙遍历
xdel key id #删除元素
xlen key  #流的长度
xtrim key maxlen 2 #最大长度截取两个元素
xtrim key minid 2 #最小长度截
xread count 2 streams stream $ # 从最大位置读取两个
xread streams stream 0-0 #从最小位置读取
xread block streams stream $ #阻塞读取
xgroup create key groupname $ #创建从队尾消费的消费组
xgroup create key groupname 0-0 #创建从队头消费的消费组
xreadgroup group g2 cons2 streams stream >  #从头消费同组内消费者只能消费一次 不同消费组可以消费同一组消息
xreadgroup group g3 cons1 count 2 streams stream > #指定消费者消费数据条数
xpending stream g4 #查看哪些已读未确认的消息
xack stream g4 1677901807619-0 #确认签收id为1677901807619-0 的消息
xinfo streams stream #查看消息队列状态
  1. key 相关操作
keys *  #查看所有key
exists key  #查看key是否存在
type key   #查看key的类型
del key    #删除key
unlink  key  #非阻塞删除
ttl key  #查看过期时间 -1 永不过期  -2 已超时
expire key  1  #设置过期时间
move key dbindex【0~15】 #移动key到某个库默认使用0
select dbindex【0-15】  #切换库
dbsize  #查看当前数据库key数量
flushdb #清空当前库
flushall #清空所有库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值