数据类型

五大数据类型

Redis-key
keys * #查看所有key
set name jpy #set key
exists name #判断当前可以是否存在
del name #删除当前key
move name 1 #将key-vlaue移动到数据库1
expire name 10 #设置过期时间,秒
ttl name #查看可以剩余时间
	没有设置过期时间,所以会返回-1
	过期,返回-2
	没过期,返回剩余时间
type name #查看类型
String
append key "hello" #追加字符串 如果key不存在,相当于set key
strlen key #获取字符串长度

#计数
set views 0 #设置初始值0
get views #查看views值
incr views #views加一
decr views #views减一
incrby views 10 #views加10
decrby views 10 #views减10

#字符串范围
getrange key 0 3 #截取字符串,包括0和3
getrange key 0 -1 #获取全部字符串

#替换
setrange key 1 xx #替换指定位置开始的字符串

setex key time vlaue #设置key的value和过期时间,key存在就替换旧值
setnx key value #如果key不存在,创建key,如果key存在,创建失败,常用在分布式锁

mset k1 v1 k2 v2 #批量设置key value
mget k1 k2 #批量获取value
msetnx k1 v1 k2 v2 #原子操作,要么一起成功,要么一起失败

#对象
user:{id}:{filed}
mset user:1:name zs user:1:age 18 #设置use:1 的name为zs,age为18

#getset 先get再set
getset name tt #如果name不存在,返回nil
get name #获取name值,这里返回tt
getset name jpy #如果存在,返回旧值,然后设置新值
get name #返回新值,这里返回jpy
List

redis里,可以吧list玩成栈,队列,阻塞队列

----------------------push-----------------------
lpush list v1 #将一个或多个值插入列表头部(左),push:1 2 3
lrange list 0 -1 #获得的是3 2 1
rpush list v1 #将一个或多个值插入列表尾部(右),push:1 2 3
lrange list 0 -1 #1 2 3

----------------------pop-------------------------
lpop list #移除第一个元素(左)
rpop list #移除从左开始第一个元素

----------------------inde-------------------------
lindex list 1 #获取1下表元素(下表从0开始)

----------------------llen-------------------------
llen list #返回列表长度

----------------------移除-------------------------
lrem list 1 v #移除1个value为1的元素

----------------------trim-------------------------
trim list 1 2 #截断,只留下下标为1,2的元素

-----------------------pop push组合------------------------
rpoplpush  list1 list2 #移除list1列表最后一个元素,并将它移动到新的离表(list2)中

----------------------set-------------------------
lset list value #替换list中指定下标的值

----------------------insert-------------------------
linsert list before v1 v2 #将v2插入到v1前面
Set
sadd set v1 #往set添加元素v1
smembers set #查看set中元素
sismember set v1 #判断set中是否存在元素v1
scard set #查看元素个数
srem set v1 #移除元素v1
srandmember set count #随机筛选出count个元素
spop set #随机移除元素
smove set1 set2 v1 #将set1中的v1移动到set2中

----------------------差集,并集-------------------------
sdiff set1 set2 #饭后set1中有,set2中没有的元素,差集
sinter set1 set2 #交集
sunion set1 set2 #并集
Hash
hset hash f1 v1 #设置字段f1值v1
hget hash f1 #获取字段值
hset hash f1 v1 f2 v2 #设置多个字段值
hget hash f1 f2 #获取多个字段值
hgetall hash #获取全部值
hdel hash f1 #删除f1
hlen hash #获取字段个数
hexists hash f1 #判断字段f1是否存在
hkeys hash #获取所有字段
hvals hash	#获取所有值
hincrby hash f1 1 #f1字段值增加1
hdecrby hash f1 2	#f1字段值减2
Zset
zadd sal 2500 user1
zadd sal 3000 user2
zadd sal 1000 user3 #添加元素 带score
zrangebyscore sal -inf +inf #从小到大显示全部
zrangebyscore sal -inf +inf withscores #从小到大显示全部,并带上 score
zrangebyscore sal -inf 2500 withscores #sal小于2500以下的从小到大
zrem sal user1 #移除元素
zcard sal #元素个数
zrange  sal 0 -1 #升序
zcount sal 1000 3000 #获取指定区间成员数量

三种特殊类型

geospatial

有效经度:-180-180,纬度:-85.05112878-85.05112878

geoadd china:city 39.90 116.20 beijing 纬度2 经度2 名称2 #添加城市信息纬度,经度,名称,
gepos china:city beijing #获取北京经纬度
geodist china:city beijing shanghai #两城之间距离
georadius china:city 110 30 5 km #获取110,30这个点半径5km之内所有元素
georadius china:city 110 30 5 km withdist #带上距离
georadius china:city 110 30 5 km withcoord #带上经纬度
georadius china:city 110 30 5 km withcoord count 2#找出复合条件的2个元素
georadiusbymember china:city shanghai 10 km # 找出与元素shanghai 半径10km里内的元素
zrange china:city #查看所有元素
zrem china:city beijing #移除指定元素
Hyperloglgo 基数统计

统计不重复元素的个数--》基数

{1,3,5,7,8,7} 基数=5

pfadd key a b c d e f #添加元素
pfcount key # 6
pfadd key a d g 
pfcount key # 7 ->{a b c d e f g}

pfmerge key3 key1 key2 #key1和key2合并为key3,并集
Bitmap 位图

统计打卡的,未打卡的

位存储

#统计一周内打卡次数
0:未打卡
1:打卡

setbit status 0 0 #周一0,未打卡
setbit status 1 1 #周二1,打卡了
setbit status 2 1
setbit status 3 0
setbit status 4 0
setbit status 5 1
setbit status 6 0

getbit status 3 #查看周四有没有打卡
bitcount sign #统计打卡天数,统计为1的,如果定义0为打卡,统计出来的就是未打卡天数  
posted @   jpy  阅读(33)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示