redis基本的数据类型(Redis的五种基本数据类型)

1、stringset get getset mset mget,今天小编就来聊一聊关于redis基本的数据类型?接下来我们就一起去研究一下吧!

redis基本的数据类型(Redis的五种基本数据类型)

redis基本的数据类型

1、概述
  • Redis是一个由C语言开发的基于key-value形式的非关系型数据库key-value:键值对【键:String,值:五种数据类型】非关系数据库:NoSQL【Not Only SQL】关系型数据库:由二维表的形式来存储数据不是关系型数据库,就是非关系型数据库
  • 存储介质默认是内存可以持久化到磁盘上
  • 官网中文:http://www.redis.cn/
  • 英文:https://redis.io/
2、Redis的五种基本数据类型
  • string:字符串
  • hash:对象
  • list:有序列表
  • set:无序集合
  • zset:有序集合
3、基本用法

1、string

set get getset mset mget

setnx strlen append incr incrby

decr decrby

#设置key和value,正确返回OK set key value set name zhangsan #获取key对应的value值,若没有返回nil get key get name #返回key对应的value,再重新设置这个key的值 getset key value getset name lily #设置多个键值对 正确返回OK mset k1 v1 k2 v2 ... mset sex 1 age 20 address hz #获取多对key对应的value mget k1 k2 k3 ... mget sex age address #设置key-value:如果key不存在,则设置,如果key存在,则什么都不做 #成功返回1,失败返回0 setnx key value setnx phone 13577889900 #计算key对应的value的长度 strlen key strlen phone #在原先的基础之上进行字符串追加 append key value append address xs #本来address的值是hz,现在就是hzxs #自增1,value是数值类型才能成功。如果key不存在,则直接以0为基础,进行自增。如果这个值不是数值,则会报错 incr key incr age #age本来是20,现在返回就是21 #自增指定数量,value是数值类型才能成功 incrby age 5 #age本来是20,现在返回就是25 #自减1,value是数值类型才能成功。 decr key decr age #age本来是0,现在返回就是-1 #自减指定数量,value是数值类型才能成功 decrby key decrby age 20 #age本来是30,现在返回就是10

2、hash

hset hmset hget hmget hkeys

hvals hgetall hexists hlen hsetnx hdel

#设置值,必须指定大key和小key、value hset person name tom #设置多值 hmset person sex 1 age 20 #获取单个小key对应的value hget person sex #获取多个小key对应的value们 hmget person name age #获取所有的小key hkeys person #获取所有的小key对应的values hvals person #获取所有大key中的键值对 hgetall person #判断小key是否存在 hexists person age #求大key中小key的数量 hlen person #设置小key【小key不存在,则设置成功,如果存在,则什么都不做】 hsetnx person age 25 #删除 hdel person age

3、list

  • 增加数据:两种方式左边增加数据:左压栈,后增加的数据在左边右边增加数据:右压栈,后增加的数据在右边
  • 读取数据读取数据从左往右

lpush rpush lrange llen lindex lpop rpop rpoplpush lrem

#左压栈 lpush key v1 v2 ... #特征:存入的数据顺序跟读取顺序相反 #右压栈 rpush key v1 v2 ... #特征:存入的数据顺序跟读取顺序相同 #查询列表中的数据 #下标从0开始,如果要读到最末尾,endIndex就是-1 lrange key startIndex endIndex lrange key 0 -1 #获取列表元素的个数 llen key #获取指定索引的元素,index表示索引 lindex key index #获取指定索引为3的元素 lindex key 3 #从左边弹出一个元素[获取最左边的元素,再删除它] lpop key #从右边弹出一个元素 rpop key #从一个列表的右边弹出元素,再追到加另一个列表的左边 rpoplpush 源列表 目标列表 #移除count个的value值 lrem key count value lrem names 2 tom #删除names列表中2个tom【是从左开始移除】

4、set

sadd scard smembers sismember spop sdiff sinter sunion

sdiffstore sinterstore sunionstore smove

#存值 sadd myset aa bb cc #返回存入的个数 #获取集合长度 scard myset #获取集合元素 smembers myset #判断元素是否在集合中。存在:返回1,不存在:返回0 sismember myset cc #随机弹出一个元素 spop myset #随机弹出指定个数元素 spop myset 2 #差集 sdiff myset1 myset2 #交集 sinter myset1 myset2 #并集 sunion myset1 myset2 #将交集结果存入到另一个集合中 #sdiffstore 存储结果的集合名 操作的集合一 操作的集合二 sdiffstore myset3 myset1 myset2 #将交集结果存入到另一个集合中 sinterstore myset4 myset1 myset2 #将并集结果存入到另一个集合中 sunionstore myset5 myset1 myset2 #将myset1中的aa元素移动到myset3 smove myset1 myset3 aa

5、zset(sorted set)

zadd zcard zrange zincrby zscore zinterstore zrangebyscore zrevrangebyscore

zrem zrank zremrangebyscore

#向有序集合中增加元素 #zadd 集合名 分数1 名称1 分数2 名称2 ... zadd tuhaobang 10 zhangsan 80 lisi 30 wangwu #返回插入的数量 #获取集合中元素的数量 zcard tuhaobang #获取集合中指定区间的元素名称,如果后面的索引是-1,则返回所有元素名称 zrange tuhaobang 0 -1 1) "zhangsan" 2) "wangwu" 3) "lisi" #获取集合所有的元素,包括名称和分数【是从小到大排序】 zrange tuhaobang 0 -1 withscores 1) "zhangsan" 2) "10" 3) "wangwu" 4) "30" 5) "lisi" 6) "80" #获取集合前两位元素的名称和分数 zrange tuhaobang 0 1 withscores 1) "zhangsan" 2) "10" 3) "wangwu" 4) "30" #为集合中指定的名称的元素增加分数 zincrby tuhaobang 50 zhangsan #返回增加后的分数 #返回集合中指定名称的分数 zscore tuhaobang wangwu #把myzset1和myzset2根据元素名称求出交集,并把相同名称的value加在一起,得到元素名称的新分数,存入到新集合中,成功返回的是交集的个数 #zinterstore 目标集合 操作集合的数量 集合一 集合二 ... ZINTERSTORE myzset3 2 myzset1 myzset2 #zrangebyscore 集合名称 小分数 大分数 [withscores] [limit 第几条开始显示 显示数量] #在不知道当前集合中最大值和最小值的情况下,-inf代表最小值 inf代表最大值 #获取tuhaobang集合中所有元素名称及分数 zrangebyscore tuhaobang -inf inf withscores #获取tuhaobang集合中第一个元素名称及分数 zrangebyscore tuhaobang -inf inf withscores limit 0 1 #获取tuhaobang集合中分数在50-100之间的所有元素名称及分数 zrangebyscore tuhaobang 50 100 withscores #获取tuhaobang集合中分数在50-100之间的前两位元素名称及分数 zrangebyscore tuhaobang 50 100 withscores limit 0 2 #按从大到小的顺序进行排序,并获取前2位 zrevrangebyscore tuhaobang inf -inf withscores limit 0 2 #根据元素名删除元素 zrem key member [member...] #获取集合中指定元素名称对应的索引 zrank tuhaobang lisi #删除指定分数区间的元素[10,20],删除成功返回删除的个数,否则返回0 zremrangebyscore tuhaobang 10 20

4、通用命令
  • key相关

#查找匹配规则的key, *:代表0到多个字符,?代表一个字符 #查询所有key keys * #查询keys中第二个字母为a的key keys ?a* #判断key是否存在,存在:返回1,不存在:返回0 exists key #删除key,删除成功返回1,删除不存在的key返回0 del key #查看key剩余有效时间 #ttl key ttl gender 结果:返回剩余有效时间,如果已经过期:返回-2,如果没有设置有效时间:返回-1 #设置已经存在的key的过期时间,单位为秒 expire key seconds #为已经存在的key设置过期时间,单位是毫秒 pexpire key 毫秒 #查看指定key的剩余存活时间,单位是毫秒 pttl key #移除指定key的生存时间,永久的持久化 persist key #获取指定的key的value的数据类型 type key #移动当前数据库中对应的key到其他数据库,dbindex是0-15 move key dbindex

  • 数据库相关

#redis默认有16个数据库,分别是 db0 - db15 #查看当前数据库下有多少key dbsize #切换数据库,dbindex是0-15 select dbindex #清空当前数据库 flushdb #清空所有数据库中的数据 flushall #实时监控Redis服务接收到的命令【其他客户端的操作,能够被监控到】 monitor

  • 查看redis读写性能

#redis写的性能 redis-benchmark set #redis读的性能 redis-benchmark get

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页