【Redis】基本类型

常用操作

  • keys hello*查找 key,模糊匹配,可以使用正则表达式,时间复杂度 O(n)
  • exists key判断 key 是否存在
  • expire key 100:设定 key 的过期时间(单位:s)
  • persist key:抹去 key 的过期时间
  • ttl key:查看 key 的过期时间
  • select 0:选定当前数据库,0 为数据库序号(0 ~ 15,一共 16 个数据库)
  • move age 1:数据库之间的移动,将 age 从当前数据库移动到 1 数据库
  • dbsize:DB 的 key 数目
  • type myset:判断类型
  • rename myset yourset:为 key 重命名
  • randomkey:随机返回一个 key
  • flushdb:删除当前数据库中的所有数据
  • flushall:删除所有数据库中的所有数据

string 类型

string 类型不仅仅可以存 “hello” 这样的字符串,还可以存储二进制字符串,它是二进制安全的,例如存图片。

基本操作

  • setnx name tom: 先检查 name 是否存在,如果已存在,则不进行重新复制,返回 0;否则,创建 name,并赋予 “tom” 值
  • setex color 10 red:设置 color = "red" 并且 color 会在 10s 后移除
  • setrange number 6 00:字符串替换,注意 “89” 并不会替换

    number = “0123456789”
    [cmd] setrange number 6 00
    (integer) 10
    number = "0123450089"
  • mset name tony age 10:设置多个值,与之对应的还有 msetnx, msetex mget
  • getset:获取旧值并修改为新值
  • getrange nmber 0 5:两个数字表示 [begIndex, endIndex] 中获取字符串
  • incr key:自增 1
  • incrby key -5:自增 -5
  • strlen number:获取字符串长度
  • apend number hello:追加字符串,返回新字符串的长度

Hash 类型

hash 类型是一组 key-value,和组的名字 name 组成的一个数据结构,取数据的时间复杂度为 O(1)

[cmd] hmset user name tom password 123456
// 数据结构如下
user {
    name: "tom",
    password: "123456"
}

基本操作

  • hset, hsetnx, hsetex, hmset, hincrby, hincr:与 String 类型的操作大致相同
  • hexists user name:查看 user.name 是否存在
  • hlen user:返回 user 属性的个数
  • hkeys user (hvals user):返回 user 中所有的 key(或者所有的 value)
  • hgetall user:返回 user 所有的 key-value

List 类型

list 类型做的十分的灵活,原型是一个有序的列表,拥有下表操作,为双向队列。既可以作为使用,又可以作为队列使用

基本操作

  • lpush (rpush):从 list 头压入(从 list 尾部插入)
  • lpop (rpop):从 list 头弹出 (从 list 尾部弹出)
  • lrange list 0 -1:按照 index 位置查询,-1 代表倒数第一个
  • lrem list 5 "one":从 list 中移除 5 个 ”one“ 元素,按照 value 位置删除
  • linsert list before (after) world hello:按照位置插入,hello 插入到 world 前面(后面),按照 value 位置插入
  • lset list 1 four:按照 index 进行修改,按照 index 位置修改
  • ltrim list 0 2:只保留 index 为 [0, 2] 的元素,按照 index 位置删除
  • lindex list 1:按照 index 位置查找
  • llen list:返回 list 长度

Set 类型

set 类型是跟数学上的 set 定义相同:不能拥有重复元素,两集合可以做:交集、差集、并集。

set 元素的内部排列方式是无序的(访问的方式是系统自动查找到一个元素),查找的时间复杂度为 O(1)

基本操作

  • sadd myset hello:返回 1,插入成功;返回 0,插入失败,集合中存在该元素
  • smembers myset查找返回 myset 中所有的元素
  • srem myset hello删除集合中的 hello,返回 1 表示删除成功,0 表示元素不存在,删除失败
  • spop:随机弹出一个元素,随机查找单个元素操作
  • sdiff (sinter, sunion) myset1 myset 2:返回两集合的差(交、并)集
  • smove myset1 myset2 hello移动 hello 到 myset2,return 1 (0) 成功(失败)
  • scard myset:return myset.length
  • sismember myset one判断 one 是否存在于 myset,return 1 (0) 存在(不存在)
  • srandmember myset:随机查找一个元素,但不同于 spop 不删除

Sorted Set 类型

有序集合(访问的方式是根据 index 或者 score 随机访问)的数据结构可以理解为含有三列的表格

  • 第一列:存放 index(从 0 开始,连续)
  • 第二列:存放 score(用户指定,可以不连续,可重复
  • 第三列:存放 value

基本操作

  • zadd myset 1 one:在 myset 中插入 one,score 为 1,index 由 Redis 内部指定(保证连续)
  • zrange myset 0 -1查找 myset 中 index 为 0 和 -1 之间的元素
  • zrangebyscore myset 2 4查找元素,根据 score
  • zrank (zrevrank) myset hello查找 index 按照从小到大(从大到小)的顺序,返回 hello 的 index
  • zcount myset 2 3查找元素,根据 score 从 2 到 3
  • zrem myset two删除
  • zremrangebyrank myset 1 1:根据 score 范围删除return 1 (0) 成功(失败)
  • zincry myset 2 one:对 one 的 score 加 2,返回 1,操作成功;返回 0,新增 one 成功,score 设定为 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值