Redis学习笔记(三)——redis五大数据类型及常见命令

Redis

三、Redis数据类型

1、五大数据类型

  1. string(字符串

    string是redis最基本的类型,一个key对应一个value。

    string类型是二进制安全的。redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。

    string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M

  2. hash(哈希,类似java里的Map)

    键值对集合

  3. list(列表)

    底层是链表,前后都可以加入新元素。

  4. set(集合)

    string类型的无序集合,底层是HashTable

  5. zset(sorted set:有序集合)

    string类型的有序集合,不允许重复;但每个元素会关联一个double类型的分数。redis通过分数来对集合中的成员进行从小到大排序。zset成员唯一,但分数可以重复。

操作命令:http://redisdoc.com/

2、常用命令

  1. 键(key)

    • keys *:查询所有的键,只返回键,不返回值。
    • exists key1:判断键key1是否存在,返回1表示有,0表示没有。
    • move key1 2:将当前库中key1的键值对移到下标为2的库中。
    • expire key1 秒:为给定的key设置过期时间,过期后通过keys *和get命令都无法查询。
    • ttl key1:查看还有多少秒过期,-1表示永不过期,-2表示已过期
    • type key1:查看key1是什么类型,类型会返回五大类型之一
  2. string

    • set key1 v1:设置键值对,若key1在数据库中已存在,则v1会覆盖之前的值。
    • get key1:只返回对应的值,不返回键。没有则返回(nil)
    • del key1:删除键值对,成功返回1
    • append key1 v2:在之前的值后面追加字符串。返回新长度。
    • strlen key1:获取对应值的长度
    • incr/decr key1:只能对数字进行加减,每次只能加一。若值不是数字则会报错。
    • incrby/decrby key1 num:对数字加num值。同上
    • getrange key1 i j:获取指定区间范围内的值,[i,j]闭区间,若是从零到负一则表示全部。
    • setrange key1 i v1:设置指定区间范围内的值,从下标为i的值开始(包括i),覆盖字符串v1。
    • setex(set with expire) key1 秒 v1:创建键值对,同时设置过期时间
    • setnx(set if not exist) key1 v1:不存在才创建。返回1则创建成功,返回0则创建失败(当前库已有该键)。
    • mset k1 v1 k2 v2 k3 v3:同时创建多个键值对,成功返回OK
    • mget k1 k2 k3:同时获取
    • msetnx k1 v1 k2 v2 k3 v3:同时创建不存在的键值,多个不存在。有一个已存在则全部存不进去。
  3. list

    • lpush list1 v1 v2 v3:从链表的左边依次插入,即读时逆序。返回插入值的个数。

    • rpush list1 v1 v2 v3:从链表的右边依次插入,即读时正序。

    • lrange list1 i j:读取list,i,j为读取的区间下标,闭区间。注意:list不能使用get读取

    • lpop list1:弹出最左边元素,返回左边栈顶。

    • rpop list1:弹出最右边元素,返回右边栈顶。

    • lindex list1 i:按照索引下标获得元素,若越界返回(nil)

    • llen list:返回长度

    • lrem list1 n v1:删n个v1

    • ltrim list1 i j: 截取[i,j]中的值后再赋值给key,没有截取的部分丢掉。

    • rpoplpush list1 list2:将源列表从右边出栈一个元素放入目的列表的左边入栈。

    • lset list1 i v:设置下标为i处的值为v。替换。

    • linsert list1 before/after v1 v2:在值v1之前/之后插入v2。若v1在list1中有重复,则只会在第一个v1值前后进行操作。

  4. set

    • sadd key1 v1 v2 v3:若输入的值中有重复,则会自动去掉重复值。

    • smembers key1:查询所有

    • sismember key1 v1:查看v1是否在集合key1里面

    • scard key1:获取集合里面的元素个数

    • srem key1 v1:删除集合中元素

    • srandmember k1 num1:num1必须是整数,从k1集合中随机获取num1个元素,不影响原集合中元素。适合红包项目。

    • spop k1:随机出栈

    • smove k1 k2 v1:v1在k1中,作用是将k1里的v1值赋给k2

    • sdiff k1 k2:差集,返回在k1中,不在k2中的元素

    • sinter k1 k2:交集,返回同时在k1和k2中的元素

    • sunion k1 k2:并集,返回k1,k2中所有元素,会去重。

  5. hash

    • hset k1 h1 v1:k1对应的值是一个键为h1,值为v1的键值对。
    • hget k1 h1:获取h1对应的值
    • hmset k1 h1 v1 h2 v2 h3 v3:创建k1对应的多个键值对
    • hmget k1 h1 h2 h3:获取h1、h2、h3对应的值
    • hgetall k1:获取k1中所有的键值对,输出格式为一个键一个值交替输出
    • hdel k1 h1:删除h1及对应的值
    • hlen k1:输出k1对应的键值对的数量
    • hexists k1 h1: 在k1里面键h1是否存在
    • hkeys k1:返回k1中所有的键
    • hvals k1:返回k1中所有的值
    • hincrby k1 h1 num:在h1对应的值上加整数num
    • hincrbyfloat k1 h1 num:同上,加的是小数类型
    • hsetnx k1 h1 v1:不存在h1才创建
  6. zset

    • zadd k1 s1 v1 s2 v2 s3 v3:同set中命令,不同的是在每个值前加上一个分数s
    • zrange k1 i j:返回k1中下标[i,j]的值。(根据分数值从小到大排序)
    • zrange k1 i j withscores:返回k1中下标[i,j]的值和分数。
    • zrangebyscore k1 s1 s2:根据分数范围[s1,s2]返回对应的值,在后面加上withscore即同时能返回分数。
    • zrangebyscore k1 (s1 (s2:根据分数范围(s1,s2)返回对应的值
    • zrangebyscore k1 s1 s2 limit i num:在分数范围[s1,s2]返回值中取出下标i开始的前num个数,
    • zrem k1 v1:删除元素
    • zcard k1:统计个数,一个分数-值对只算一条数据
    • zcount k1 s1 s2:统计分数之间的个数
    • zrank k1 v1:获得下标值
    • zscore k1 v1:获得对应的分数
    • zrevrank k1 v1:逆序获得下标值
    • zrevrange k1 i j:根据下标反向输出
    • zrevrangebyscore k1 s2 s1:反转输出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值