Redis(三)------五大数据类型

本文介绍了Redis的五大数据类型:String、List、Set、Hash和Zset,包括它们的基本用法、常见操作及应用场景,如计数器、消息队列、共同关注、对象存储和排行榜等。
摘要由CSDN通过智能技术生成

Redis(三)------五大数据类型、三种特殊数据类型

  • Redis是一个开源的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件MQ

  • 它支持多种类型的数据结构,如:字符串(String)、散列(Hashes)、列表(Lists)、集合(Sets)、有序集合(Sorted Sets)与范围查询,基数统计(Hyperloglogs),位图场景(Bitmaps)和地理空间(Geospatial)索引半径查询

  • Redis内置了复制(Replication)、LUA脚本(Lua Scripting)、LRU驱动事件(LRU Eviction)、事务(Transactions)和不同级别的磁盘持久化

5、Redis-Key

127 .0.0.1:6379> keys *  # 查看所有的key
(empty list or set)
127 .0.0.1:6379> set name zzz  # set key
OK
127 .0.0.1:6379> keys *
1 ) "name"
127 .0.0.1:6379> set age 1
OK
127 .0.0.1:6379> keys *
1 ) "age"
2 ) "name"
127 .0.0.1:6379> EXISTS name  # 判断当前的key是否存在,返回1说明存在
(integer) 1
127 .0.0.1:6379> EXISTS name1 # 返回0说明不存在
(integer) 0
127 .0.0.1:6379> move name 1 # 移动当前的key到指定数据库
(integer) 1
127 .0.0.1:6379> keys *
1 ) "age"
127.0.0.1:6379> select 1 # 切换到数据库1
OK
127.0.0.1:6379[1]> keys *
1) "name"
127.0.0.1:6379[1]> get name
"zzz"
127.0.0.1:6379[1]> select 0 # 切换到数据库0
OK
127.0.0.1:6379> keys *
1) "age"
127.0.0.1:6379> set name zzz
OK
127.0.0.1:6379> keys *
1) "age"
2) "name"
127.0.0.1:6379> get name
"zzz"
127.0.0.1:6379> EXPIRE name 10 #设置key的过期时间,单位是秒
(integer) 1
127.0.0.1:6379> ttl name  # 查看当前key的剩余时间
(integer) 4
127.0.0.1:6379> ttl name
(integer) 3
127.0.0.1:6379> ttl name
(integer) 2
127.0.0.1:6379> ttl name
(integer) 1
127.0.0.1:6379> ttl name
(integer) -2 
127.0.0.1:6379> get name # 就会自动删除 keys *也就没了
(nil) # 表示为空
127.0.0.1:6379> type name  # 查看当前key的一个类型!
string
127.0.0.1:6379> type age   
string

6、五大数据类型

6.1 String类型

6.1.1 基本用法
命令 描述
set key value 设置值
get key 获得值
key * 获得所有key
EXISTS key 判断key是否存在,1存在,0不存在
APPEND key “字符串” 追加字符串,key不存在为set key value
STRLEN key 获取字符串长度
incr key 自增1
decr key 自减1
INCRBY key 增加量 批量增加
DECRBY key 减少量 批量减少
  • 实践
------------ SET GET ------------
# 设置值
127.0.0.1:6379> set name zzz
# 获得值
127.0.0.1:6379> get name 
# 获得所有的key
127.0.0.1:6379> keys * 

------------ EXIST ------------
# 判断某一个key是否存在 1为存在 0为不存在
127.0.0.1:6379> EXISTS name  
(integer) 1

------------ APPEND ------------
# 追加字符串,如果当前key不存在,就相当于set key value
127.0.0.1:6379> APPEND name "hehe" 
# 7就是name的值的长度
(integer) 7
127.0.0.1:6379> get name
"zzzhehe"

------------ STRLEN ------------
# 获取字符串的长度
127.0.0.1:6379> STRLEN name  
(integer) 7

# i++
# 步长 i+=
# 初始浏览量为 0
127.0.0.1:6379> set views 0 
OK
# 查看浏览量
127.0.0.1:6379> get views
"0"

------------ incr ------------
# 自增1 浏览量+1
127.0.0.1:6379> incr views  
(integer) 1
127.0.0.1:6379> incr views
(integer) 2
127.0.0.1:6379> get views
"2"

------------ decr ------------
# 自减1 浏览量-1
127.0.0.1:6379> decr views  
(integer) 1
127.0.0.1:6379> decr views
(integer) 0
127.0.0.1:6379> decr views
(integer) -1
127.0.0.1:6379> get views
"-1"

------------ INCRBY ------------
# 可以设置步长,指定增量!
127.0.0.1:6379> INCRBY views 10 
(integer) 9
127.0.0.1:6379> INCRBY views 10
(integer) 19

------------ DECRBY ------------
# 减少量
127.0.0.1:6379> DECRBY views 5
(integer) 14
6.1.2 字符串范围range
命令 描述
GETRANGE key n1 n2 截取字符串[n1,n2]
GETRANGE key 0 -1 获取全部字符串,相当于get key
SETRANGE key n 字符串 替换n开始的字符串,写多少换多少
  • 实践
# 设置 key1 的值
127.0.0.1:6379> set key1 "hello,zzz" 
OK

------------ GETRANGE ------------
# 截取字符串 [0,3]
127.0.0.1:6379> GETRANGE key1 0 3  
"hell"
# 获取全部的字符串 和 get key 是一样的
127.0.0.1:6379> GETRANGE key1 0 -1 
"hello,zzz"

------------ SETRANGE ------------
127.0.0.1:6379> set key2 abcdefg
OK
127.0.0.1:6379> get key2
"abcdefg"
#替换指定位置开始的字符串!替换下标1开始往后的字符串,写了几个替换几个
127.0.0.1:6379> SETRANGE key2 1 xx 
(integer) 7
127.0.0.1:6379> get key2
"axxdefg"
6.1.3 设置set的过期时间
命令 描述
setex key n vlaue 设置key值为value,n秒后过期
setnx key “字符串” 如果不存在,再设置key值为字符串,成功返回1,失败0,如果存在创建失败
ttl key 查看过期时间
mset k1 v1 k2 v2 k3 v3… 同时设置多个值
mget k1 k2 k3… 同时获取多个值
msetnx k1 v1 k4 v4 若都不存在,同时创建,为原子性操作,一起成功或一起失败
getset key value 先get再set,不存在则创建,存在则替换原值
key:{id}:{field} value 例如:user:1:name zzz,一号user的name为zzz
  • 实例
# 设置过期时间
setex (set with expire) 
# 如果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值