美文网首页
redis的基本操作整理

redis的基本操作整理

作者: esrever | 来源:发表于2019-08-29 10:42 被阅读0次

概念

Redis (Remote Dictionary Server) is an in-memory data structure project implementing a distributed, in-memory key-value database with optional durability

redis基础数据结构

redis作为key-value数据库,key都是字符串,value则为以下数据结构其中之一

  1. string 字符串
  2. list 列表
  3. set 集合
  4. hash 哈希
  5. zset 有序集合

redis常用命令

db操作

redis由多个db构成,默认有0~15号db

操作 命令 说明
选定db select db select 1表示选定1号数据库
获取db存储的key总数 dbsize 返回整数
清空当前db的数据 flushdb 谨慎使用
清空所有db的数据 flushall 谨慎使用!!

key操作

db中可以有很多key

操作 命令 示例 说明
给key赋值(不同的数据类型有不同的方式,用字符串类型来举例说明) set key value set myname jack 通常返回OK
是否存在key exists key exists myname 存在=1,不存在=0
删除key del key del myname 成功=1,失败=0
查看key的数据类型 type key type myname string/list/hash/set/zset...
设置key过期时间(单位:秒) expire key n expire myname 100 n<=0时,key会马上过期
查看key剩余有效时间 ttl key ttl myname -2=key不存在,-1=key无过期时间
模式匹配符合规则的key keys pattern keys my_* keys *查看所有key名

string 字符串

  • 最常用(最简单)的数据结构
  • value通常是普通字符串或序列化后的对象(也是字符串)
操作 命令 示例 说明
给key赋值 set key value set myname jack 通常返回OK
给多个key赋值(减少网络传输次数) mset key1 val1 key2 val2 ... mset myname jack hisname john 通常返回OK
获取key的值 get key get myname val字符串 / (nil)空值
获取多个key的值 mget key1 key2 ... mget myname hisname val字符串 / (nil)空值
使key的值+1并返回(value不为数字时,会报错。key未定义,则赋值1并返回) incr key incr age 返回增加后的数 / 报错原因
使key的值-1并返回(key未定义,则赋值-1并返回) decr key decr money 返回增加后的数 / 报错原因
使key的值+N并返回 incrby key num incrby money 100 返回增加后的数 / 报错原因
使key的值-N并返回 decrby key num decrby money 50 返回增加后的数 / 报错原因
key的值的字符串长度 strlen key strlen myname type=string时=长度 / type=none时=0 / type=其他时=报错
往key的值后追加字符串 append key str append myname happy type=string/none 追加 , type=其他 报错
截取key对应的字符串返回(不会改变原串,start和end是闭区间,且支持负数) substr key start end substr money 0 -3 超过范围不会报错
获取key用二进制表示的第n位(0或1) getbit key n getbit myname 2 -
设置key用二进制表示的第n位(0或1) setbit key n val setbit myname 3 1 val=0/1,否则会报错
获取key中的范围内所有字符用二进制表示时的1的个数(闭区间) bitcount key start end bitcount myname 2 3,start/end可以为空,表示整个字符串 -

list 列表

  • 双向链表结构,两端插入删除速度快,查询元素慢
操作 命令 示例 说明
从key左边(逐个)插入元素 lpush key val1 val2 ... lpush namelist jack john bob 通常返回正数表示成功,正数=插入元素个数
从key右边(逐个)插入元素 rpush key val1 val2 ... rpush namelist jack john bob 通常返回正数表示成功,正数=插入元素个数
从key左边弹出元素 lpop key lpop namelist 弹出元素,如果key对应的是null值,则弹出(nil)空值
从key右边弹出元素 rpop key rpop namelist 弹出元素,如果key对应的是null值,则弹出(nil)空值
key中元素个数 llen key llen namelist -
获取key中元素范围(不会改变key,start和end是闭区间,且支持负数) lrange namelist start end lrange namelist 2 5 空时返回(empty list or set)
改变key中元素,只保留范围内元素 ltrim key start end ltrim namelist 1 2 返回OK表示成功
获取key的第n个元素 lindex key n lindex namelist 2 返回该元素 / (nil)空值

hash 哈希

操作 命令 示例 说明
赋值key中的field hset key field val hset myattr age 10 初次创建返回1,否则(修改)返回0
获取key的field对应的值 hget key field hget myattr age 返回该元素 / (nil)空值
为key的field设置多个值 hmset key f1 val1 f2 val2 hmset myattr eyes big mouth small 通常返回OK
从key中取多值 hmget key f1 f2 ... hmget myattr f1 f2 f3 返回结果列表
获取key的所有字段和所有值 hgetall key hgetall myattr 返回key和value,每个元素都是一行
取所有字段名 hkeys key hkeys myattr 返回key,每个元素都是一行
取所有数据值 hvals key hvals myattr 返回value,每个元素都是一行
获取字段长度 hlen key hlen myattr key-value对的个数
删除字段 del key field1 field2 del myattr xxx yyy 删除元素个数
字段是否存在 hexists key field hexists myattr k3 存在=1,不存在=0
当字段存在的时候赋值(相当于exists+hset,但是是原子操作) hsetnx key field val hsetnx myattr k3 aa 设置成功=1,已存在=0

set 集合

操作 命令 示例
往key中增加值 sadd key val1 val2 sadd flag red blue 成功增加的元素个数(>=0)
删除key中的值 srem key val1 val2 srem flag red blue 成功删除的元素个数(>=0)
获取key中所有元素 smembers key smembers flag 返回列表
判断某个元素是否在key的元素中 sismember key val sismember flag green 存在=1,不存在=0
key中元素个数 scard key scard flag 元素个数
随机弹出一个元素 spop key spop flag 元素值
随机返回n个元素(负数表示可重复,正数表示不重复) srandmember key count srandmember flag -2 元素列表
差集 sdiff key1 key2 ... sdiff f1 f2 f3 元素列表
交集 sinner key1 key2 ... sinner f1 f2 f3 元素列表
并集 sunion key1 key2 ... sunion f1 f2 f3 元素列表

zset 有序集合

操作 命令 示例
往key中增加值 zadd key score1 val1 score2 val2 zadd zflag 100 red 90 blue 成功增加的元素个数(>=0)
删除key中的值 zrem key val1 val2 zrem zflag red blue 成功删除的元素个数(>=0)
获取分数 zscore key val zrem zflag red 分数
key中元素个数 zcard key zcard zflag 元素个数
指定分数范围内的元素个数(默认是闭区间,加上(可以转成开区间) zcount key min max zcount zflag (85 (90 元素个数
升序获取key中排名范围内的元素 zrange key start end [withscores] zrange zflag 0 -3 withscores withscores参数表示同时返回分数,分数相等时,按key字典序
降序获取key中排名范围内的元素 zrevrange key start end [withscores] zrevrange zflag 0 2 -
升序获取key中分数范围内的元素 zrangebyscore key min max [withscores] [limit offset count] zrangescore zflag 90 100 limit 3 1 升序的时候,先min后max,limit后接偏移量和获取的行数
降序获取key中分数范围内的元素 zrevrangebyscore key max min [withscores] [limit offset count] zrevrangescore zflag 110 100 limit 3 1 降序的时候,先max后min,limit后接偏移量和获取的行数
获取key中某分数范围内的元素个数 zcount key min max zcount zflag 100 110 元素个数
获取key中某个元素的升序排名 zrank key value zrank zflag red 从0开始算
获取key中某个元素的降序排名 zrevrank key value zrevrank zflag red -
删除key中某个元素 zrem key val1 val2 zrem zflag red blue 成功删除的元素个数(>=0)
删除key中某个排名范围的元素 zremrangebyrank key start end zremrangebyrank zflag 0 1 成功删除的元素个数(>=0)
删除key中某个分数范围元素 zremrangebyscore key min max zremrangebyscore zflag 90 100 成功删除的元素个数(>=0)

相关文章

  • redis的基本操作整理

    概念 Redis (Remote Dictionary Server) is an in-memory data ...

  • php操作redis大全

    php连接redis测试 php操作redis函数封装 php操作redis大全,基本上php操作redis常用的...

  • Redis学习之路(二):Redis数据结构简介

    Redis提供的5种结构 Redis中的字符串 基本命令 操作练习: Redis中的列表 基本命令 基本操作: R...

  • php对redis的基本操作

    php对redis的基本操作 对key的基本操作

  • php操作redis大全

    php连接redis测试 php操作redis大全,基本上php操作redis常用的函数都在下面了

  • Redis学习笔记02——数据类型和操作命令

    本文主要介绍 Redis 常用的基本操作命令和数据类型操作命令,也就是 Redis 的基本使用。通过学习本文,应该...

  • redis 基本操作

    连接redis 选择数据库 查看所有key 查看list的全部值 返回列表 key 中指定区间内的元素,区间以偏移...

  • Redis 基本操作

    本人郑重承诺以下都是基本操作,请坐下请坐下。内容是跟着http://try.redis.io/做的。边学边笔记。更...

  • Redis基本操作

    通用操作 rename name xm 把键name重设为xm select 选择数据库(线上慎用) keys *...

  • Redis 基本操作

    启动与关闭Redis服务、进入Redis环境 1.启动Redis服务 redis-server 拷贝的redis....

网友评论

      本文标题:redis的基本操作整理

      本文链接:https://www.haomeiwen.com/subject/qylvectx.html