栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Redis的五大数据类型与常用命令

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Redis的五大数据类型与常用命令

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

Redis提供五种数据类型:String、List,Hash,Set及Zset(sorted set)。

1、String

String即字符串类型

# 增加
append [keyName] [value]					# 追加字符串,当前[keyName]不存在则新增,相当与set
mset [keyName] [value] [keyName ...] [value ...]	# 批量增加
set [keyName]:[number] {[keyName1]:[value2],[keyName ...]:[value ...]}	# 设置Json格式的字符串	
getset [keyName] [value]					# 先get再set

# 查询
strlen [keyName]							# 查看当前字符串长度
mget [keyName] [value] [keyName] [value] 	# 批量查询

# 算术运算
incr [keyName]						# 自增1
decr [keyName]						# 自减1
incrby [keyName] [increment]		# 增加 [increment]
decrby [keyName] [decrement]		# 减少 [decrement]

# 截取字符串
getrange [keyName] [start] [end]	# 截取字符串,0 -1可截取全部字符串,相当于get
setrange [keyName] [number] [value] # 替换指定位置number后的[value]

# 逻辑判断
setex [keyName] [value]				# set with expire	若存在设置过期时间
setnx [keyName] [value]				# set if not expire	若不存在设置过期时间,在分布式锁中常用
msetnx [keyName1] [value1] [keyName ...] [value ...]	# 不存在则创建一个/多个,拥有原子性
2、List

List即列表,有下标index,值可重复

# list命令以l开头的
lpush [listName] [value]		# 左侧压入(头)
rpush [listName] [value]		# 右侧压入(尾)
lpop [listName]					# 左侧弹出
rpop [listName]					# 右侧弹出

rpoplpush [listName] [oldList] [newList]	# 将一个列表中的值先右侧弹出,再加入到newList中

lset [listName] [index] [value]				# 新增/更新指定[index]的值

# 往[oldValue]前|后插入[newValue],若有同名[value],则选取第一个[value]前|后插入
linsert [listName] BEFORE|AFTER [oldValue] [newValue]

lindex [listName] [index]		# 获取对应[index]的值
llen [listName]					# 返回列表的长度
lrange [listName] [start] [end]	# 查看列表中指定下标的值,取0 -1时查看所有

# 删除
lrem [listName] [count] [value]	# 移除指定的值[count]代表个数

# 截取
ltrim [listName] [start] [end]	# 只保留指定下标的值
3、Hash

Hash则是将List的index替换成field

# hash的命令以h开头

# 添加
hset [keyName] [field] [value]			# 添加/覆盖一个值
hsetnx [keyName] [field] [value]		# 如果不存在则添加一个值
hmset [keyName] [field] [value1] [field ...] [value ...]	# 同时添加/覆盖多个值

# 查询
hget [keyName] [field]					# 获取一个值
hmget [keyName] [field1] [field ...]	# 同时获取多个值
hgetall [keyName]						# 获取所有的 field-value
hkeys [keyName]							# 获取所有的 field
hvals [keyName]							# 获取所有的 value
hlen [keyName]							# 获取hash的长度

# 删除
hdel [keyName] [field1] [keyName ...] 	# 删除指定的一个/多个值

# 逻辑判断
hexists [keyName] [field]				# 判断是否存在指定字段的值

# 算术运算
hincrby [keyName] [field] [increment]	# 增加 [increment]
hdecrby [keyName] [field] [decrement]	# 减少 [decrement]
4、Set

Set即无序不重复集合

# set的命令以s开头
# 增加
sadd [setName] [value1]	[value1]	# 添加一个/多个值

# 删除
srem [setName] [value1]	[value1]	# 删除一个/多个值
spop [setName] [count]				# 随机弹出[count]个元素

# 随机抽取
srandmember [setName] [count]		# 随机抽取[count]个,不写[count]默认为1

# 移动
smove [oldSet] [newSet] [oldSet.value]	# 将值移动到指定的集合

# 算数运算
sdiff set1 set2 [set ...]			# 差集 set1 - set2
sinter set1 set2 [set ...]			# 交集 共同好友
sunion set1 set2 [set ...]			# 并集
5、Zset

Zset即有序不重复集合,和List、Hash类似,List在value前有index,Hash有field,而Zset在set的基础上添加了score,可提供排序

# Zset命令以z开头
# 添加
zadd [keyName] [NX|XX] [CH] [INCR] [score1] [member1] [score ...] [member ...]

# 查询
zrange [keyName] [start] [end] [withscores]	# 获取指定的[member],加上withscores则显示[memeber]和[score]
zcard [keyName]								# 查询zset长度
zcount [keyName] [min] [max]				# 查询指定区间[score]的条数

# 排序
# 升序,按照[score]的值进行排序,-inf负无穷、+inf正无穷
# 若带上withscores则输出为[memeber]和[score]
zrangebyscore [keyName] [min] [max] [withscores]
# 降序
zrevrangebyscore [keyName] [min] [max] [withscores]

# 删除
zrem [keyName] [member1] [member ...]		# 删除一个/多个[member]

若上述文章中有错误,还请指正错误,感谢您的阅读!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/710497.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号