Redis的常用数据类型和基本命令

Redis的六种数据类型
数据类型数据类型存储的值说明
STRING (字符串)可以是保存字符串、整数和浮点数可以对字符串进行操作,比如增加字符或者求子串等;整数、浮点数等可以计算自增
LIST(列表)它是一个链表,它的每一个节点都包含一个字符串支持从链表两端插入和弹出节点,可以通过偏移进行裁剪,可以读取一个或多个节点,可以根据条件删除或者查找节点等
SET(集合)它是一个无序集合,里面每一个元素都是一个字符串,而且是不重复的。可以新增、读取、删除单个元素;检测元素是否在集合中;计算交并差集;可以随机从集合中读取元素
HASH(哈希散列表)类似于java中的 Map,是一个无序键值对列表可以增删改查单个键值对,可以获取所有键值对
ZSET(有序集合)SortedSet一个有序集合,可以包含字符串、整数、浮点数、分值、元素的排序根据分值大小决定可以增删改查元素,根据分值的范围或者成员来获取对应的元素
HyperLogLog(基数)(不常用)计算重复的值,以确定存储的数量

只提供基数的运算,不提供返回的功能


String的一些基本命令操作

命令说明备注
set key value设置键值对比如:set k1 v1 表示设置一对键为k1值为v1的键值对
get key通过键获取值比如:get k1  表示获取键为k1的值,若没有则显示(nil)表示为空
del key通过键删除键值对比如:del k1表示删除键为k1的键值对;其他数据类型中也可使用,会返回删除的数量
strlen key    返回key对应值的字符串长度比如:对于k1:value 则返回5
getset key value修改原来key对应的值,并返回原来的值如果原来的值为空,则返回空,并设置新的值
getrange key start end获取子串字符串长度为len,从0开始,start和end的取值范围为0~len-1
append key value新的字符串value将加入到key对应的值的末尾返回key对应值的新字符串长度
数值型的字符串可以进行简单运算

incr key在原来的值上加1操作字段必须为整数
incrby key increment在原来的值上加上整数increment操作字段必须为整数
decr key在原来的值上减1操作字段必须为整数
decrby key increment在原来的值上减去整数increment操作字段必须为整数
incrbyfloat key increment在原来的值上加上浮点数increment操作字段必须为整数或浮点数

List

命令说明备注
lpush key node1[node2...]把节点node1加入链表最左边加入顺序若为1,2,...n则链表从左到右为n...2,1
rpush key node1[node2..]把节点node1加入链表最右边加入顺序若为1,2,...n则链表从左到右为1,2,...n
lindex key index读取下标为index的节点返回节点字符串,下标从0开始
llen key求链表长度返回链表节点数
lpop key从链表左边弹出节点返回节点,并删除链表中的原节点
rpop key从链表右边弹出节点返回节点,并删除链表中的原节点
linsert key befor|after pivot node在值为pivot的节点 前|后 插入节点node若key不存在则报错,没有对应的pivot则返回-1
lpushx key node若存在key链表,则在左边插入node如果key链表不存在,则失败
rpushx key node若存在key链表,则在右边插入node如果key链表不存在,则失败
lrang key start end 获取链表从start到end的节点值包含start和end下标的值
lrem key count value

若count为0,则删除所有值等于value的节点;

如果count不为0,则先对count取绝对值再从左往右

删除不大于count个等于value的节点

count必须为整数,若为负数则会先取绝对值
lset key index node设置列表下标为index的节点值为node 
ltrim key start stop只保留从start到stop的节点,其余删除包含start和stop的下标节点

list的阻塞命令

命令 说明备注
blpop key timeout

移出并获取列表的最左边元素;

如果列表没有元素则会阻塞直到等待超时或发现可弹出元素为止

相对于lpop命令,它的操作是进程安全的
brpop key timeout

移出并获取列表的最右元素;

如果列表没有元素则会阻塞直到等待超时或发现可弹出元素为止

相对于rpop命令,它的操作是进程安全的
rpoplpush key src dest将链表最右边的元素移除并插入到最左边不能设置超时时间
brpoplpush key src timeout

将链表最右边的元素移除并插入到最左

可设置超时时间


Set

命令说明备注
sadd key member1[member2..]给键为key的集合添加成员可以同时增加多个
scard key统计键为key的集合成员数返回个数
sdiff key1[key2]找出两个集合的差集若只有key1则返回整个key1
sdiffstore des key1[key2]找出两个集合的差集存入des中
sinter key1[key2]找出两个集合的交集若只有key1则返回整个key1
sinterstore des key1[key2]找出两个集合的交集存入des中

sismember key member判断member是否为key集合的成员如果是返回1,否则返回0
smembers key返回集合的所有成员若数据太大,需要考虑迭代遍历的问题
smove src des member将成员member从集合src迁移到集合des中
spop key随机弹出集合中的一个成员随机弹出
srandmember key [count]返回count个成员count为整数,若为负数则会先取绝对值
srem key member1[member2]移除集合中的成员,可以多个移除
sunion key1[key2] 求出两个集合的并集若只有key1则返回整个key1
sunionstore des key1 key2找出两个集合的并集并存入des中



ZSet是有序的,和无序集合的主要区别在于每一个元素除了值之外,还会多一个分数,对分数的大小进行排序






Hash中一个键对应的值为多个键值对,常用于表示一个对象

例如一个User类,则键为user,对应的键值对为{“id”:1,"username":张三}

命令说明备注
hdel key field1 [field2...]删除hash结构中的某个(些)字段可删除多个字段
hexists key field判断hash结构中是否存在field字段存在返回1,否则返回0
hgetall key获取所有键为key的对应的多个键值对返回键和值
hincrby key field increment指定给hash结构中的某个字段加上一个整数increment要求字段为整数字符串
hincrbyfloat key field increment指定给hash结构中的某个字段加上一个浮点数increment要求字段为数字字符串
hkeys key返回hash中的所有键值对中的键例子中的id,username
hlen key返回hash中的键值对数量例子中为2
hmget key field1[field2...]返回hash中指定的键的值,可以是多个依次返回值
hmset key field1 value1[field2 value2...]对hash结构设置多个键值对例子中 [id 1] 为一个键值对
hset key field value在hash结构中设置键值对设置单个键值对
hsetnx key field value当hash结构中不存在对应键时,才设置值存在时则不修改原值
hvals key获取hash结构中所有的值

例子中会返回“id” 1,"username" ”张三”
















  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值