一、字符串
字符串是redis最基本的键值对数据类型,数据库会把单独的键和单独的值进行关联起来,被关联的键和值可以是普通的文字,图形,视频,音频,压缩文件。数据存储是无序的。常用场景:数据缓存、存储文章内容、存储日志、分布式锁。
set abc "123" #给abc键赋值
get abc #输出键abc的值
getset abc "456 " #输出键abc的值,并重新给abc赋新值
mset a 1 b 2 c 3 #给多个键赋值
mget a b c #输出多个键的值
msetnx a "123 " b "456 " c "789 " #给多个为空的键赋值(键必须不存在)
strlen a #统计键的长度
getrange a 0 4 #获取指定键a的数据
setrange a 4 "111 " #将键a从第四个字符开始替换新值
append a "12345 " #将新值追加到键的末尾
incrby a 300 #在键a原有值的基础上再加300 (整数相加减)
decrby a 200 # 在键a原有值的基础上减去200 (整数相加减)
incr a #在键原有基础上加1(自增)
decr a # 在键原有基础上减1(自减)
incrbyfloat a 3.14 # 在键原有基础上加3.14(浮点数相加减)
decrbyfloat a 3.14 # 在键原有基础上减去3.14(浮点数相加减)
二、散列
散列会将一个键和一个散列在数据库关联起来,用户可以在散列中为任意多个字段设置值,散列的字段和值既可以是文本数据,也可以是二进制数据。 数据存储是无序的。常用场景:实现记数器、用户登陆会话保存、文章数据存储。
hset tong a "111 " #tong是散列键,a是字段,111是键的值
hsetnx tong a "111 " #字段a不存在的情况才可以赋值。
hget tong a #输出tong散列a字段的值
hgetall tong #输出散列tong所有字段
hincrby tong a 100 #a字段的值减去100
hincrbyfloat tong a 21.75 #a字段的值增加21.75
hincrbyfloat tong a -20.12 #减去a字段的值
hstrlen tong a #输出散列中a字段的长度
hexists tong b #判断tong散列中是否有b字段存在
hdel tong b #删除散列中b字段
hlen tong #查询散列包含的字段数量
hmset tong a "111 " b "222 " c "333 " #一次为多个字段设置值
hmget tong a b c #一次输出多个字段的值
hkeys tong #输出散列tong所有字段
hvals tong #输出散列tong所有值
三、列表
列表是一种线型的有序结构,按照元素被推入列表中的顺序来存储,这些元素可以是文字,二进制数据,列表中的数据可以重复出现。常用场景:消息队列、分页、待办事项列表。
lpush todo "123" #元素推入到列表左端
lpush todo "1" "2" "3" #一次推入多个元素
rpush todo "4" "5" "6" #将元素推入到列表右端
lpushhx todo "1" #推入已存在的列表放在最左端(前提是列表已存在)
rpushhx todo "1" # 推入已存在的列表放在最右端(前提是列表已存在)
lpop todo #弹出列表最左端的元素
rpop todo #弹出列表最右端的元素
rpoplpush todo1 todo2 #弹出 todo1列表最右端的元素放到 todo2最左端(意思就是把 todo1的值全部放到 todo2中)
llen todo #获取列表的长度
lindex todo 3 #获取列表指定索引上的值
lrange todo 0 3 #获取列表指定索引范围中的值
lset todo 3 "new" #在列表指定索引上设置新值
linsert todo after "c" "000" #将000插入到todo列表c字段的后面
ltrim todo 0 3 #删除索引在0到3以外的值(删除范围外的值)
lrem todo 0 3 # 删除索引在0到3以内的值(删除范围内的值)
blpop todo 5 #左边弹出时阻塞5秒
brpop todo 5 #右边弹出时阻塞5秒
四、集合
允许用户将任意多个名不相同的元素存储到集合中,这些元素可以是文本数据,二进制数据。列表可以存储重复的值,集合不能存储重复的值。列表是有序存储,集合是无序存储。常用场景:网站访问统计、博客点赞数、投票、抽奖、共同关注和推荐关注。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25854343/viewspace-3005545/ ,如需转载,请注明出处,否则将追究法律责任。