最全面的_Redis_基本操作总结

本文知识较浅面,适合小白,如需进阶另寻他路

一,优缺点:

优点:

  • 高科拓展性
  • 分布式计算
  • 低成本
  • 架构的灵活性、半结构化数据 没有复杂的关系

缺点:

  • 没有标准化
  • 有限的查询功能(到目前为止)

分类

  • 列表存储
  • 文档存储
  • Key-Value存储
  • 图存储
  • 对象存储
  • xml数据库

显著特性:

  • 高效性:Redis读取的速度是110000次/S,写的速度是81000次/S。

  • 原子性:对每一条数据操作要么成功,要么失败。

  • 支持多种数据结构:string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合)。

  • 稳定性:redis支持各种架构,主从复制,哨兵模式,redis集群。

  • 其他特性:支持过期时间,支持事务,消息订阅。

二、操作:

1、安装:

windows 下 : 点击此处
linux下:
sudo apt install redis-server
使用方式:
  • redis-cli 启动
  • -p # 端口
  • -h # 主机

三、数据库的切换:

redis默认带有16个数据库,编号从0-15。进⼊redis后默认数据库是0,可以使用select num进⾏切换客户端不显示中⽂的处理:打开客户端的时候添加参数

–rawredis-cli --raw

四、数据类型:

string

  • 简介:
    string 可以包含任何数据,⽐如jpg 图⽚或者序列化的对象。
    string类型是Redis最基本的数据类型,⼀个键最⼤能存储512MB。常用于:缓存页面、session共享、计数

  • 设置键:

命令:SET key value #设置单键值对
>set h1 100 #设置h1的值为100

命令:mset key value [key value] #设置多个键值对
>mset name '王宝强' age 30 gender '男'

命令:setex key seconds value #设置键值及过期时间(秒单位)
>setex age 100 20 #设置年龄的值为20,过期时间100秒
  • 获取键
命令:get key #获取单个键
>get h1

命令:mget key1 key2 key3 #获取多个键
>mget name age sex
  • 查看过期时间
命令:ttl key
>ttl a1 #查看a1的过期时间
  • 运算
原来的值必须是数值字符串
命令:incr key #将对应的key 加1
命令:decr key #将对应的key值减1
命令:incrby key num #将对应的key加指定值
命令:decrby key num #将对应的key的值减去指定值
  • 其他操作:
命令:append key value #追加值,redis中值都是字符串,追加就是字符拼>append name 'hello' #如果原来的值是tom,那么现在就是tomhello
命令:strlen key #获取值得⻓度

hash

  • 简介:
    Redis hash 是⼀个键值(key=>value)对集合。Redis hash是⼀个string类型的field
    和value的映射表,hash特别适合用于存储对象。每个 hash 可以存储 2的32次方
    -1 键值对(40多亿)。存储形式
  • 设置值
命令:hset key field value #设置key所指对象的指定属性的值
命令:hmset key field value [field value] #设置key所指对象的多
个属性值
命令:hsetnx key field value #当field字段不存在时 设置key所指对
象的field属性值
eg:
hset person name '⼆狗⼦'
hmset person age 20 sex '男'
hsetnx person maried '未婚'
  • 获取值
命令: hget key field #获取key指定的对象的属性值
命令: hmget key field [field] #获取key指定对象的多个属性值
命令: hgetall key #获取key所指对象的所有属性的名称和值
命令: hkeys key #获取key所指对象的所有属性名
命令: hvals key #获取key所指对象是的所有属性值
命令: hlen key #获取key所指对象的属性个数
  • 其他操作
命令:hincrby key field increment #为key所指对象的指定字段的整
数值加上increment
命令:hincrbyfloat key field increment #为key所指对象的指定字段的
实数值加上increment
命令:hexists key field #判断当前的字段是否存在在(在返回1 否则返回
0)
命令:hdel key field [field] #删除字段和值

list

  • 简介:
    redis 列表是简单的字符串列表,按照插⼊顺序排序。你可以添加⼀个元素到列表
    的头部(左边)或者尾部(右边)。列表最多可存储 2的32次⽅ - 1 元素
    (4294967295, 每个列表可存储40多亿)。
    常应⽤于:1、对数据量⼤的集合数据删减 2、任务队列
  • 添加数据:
命令:lpush key value [value] #头部插⼊数据
命令:lpushx key value #如果列表存在则在列表头部插⼊数据
命令:rpush key value [value] #在列表尾部添加数据
命令:rpushx key value #如果列表存在,则在尾部添加数据
命令:linsert key before|after value value #在指定值前或后插⼊数
据
命令:lset key index value #设定指定索引元素的值
注意:索引的值从左边开始,向右增加,左边第⼀个是0,从右边向左索引编号
为:-1 -2...
  • 获取数据
命令:lpop key #左侧出队并返回出队元素
命令:rpop key #右侧出队并返回出队元素
命令:lindex key index #返回指定索引的值
命令:lrange key start end #返回存储列表中的指定范围的元素
 [start,end]
命令:lrem key count value #从列表⾥移除前 count 次出现的值为
value 的元素
 count > 0: 从头往尾移除值为 value 的元素。
 count < 0: 从尾往头移除值为 value 的元素。
 count = 0: 移除所有值为 value 的元素。
  • 其他操作
命令:llen key #获取列表⻓度
命令:ltrim key start stop #裁剪列表 保留start到stop之间的元素,
其它都删除
 ltrime mylist -3 -1 #从索引为-3到-2的保留, 以外的全部删除

set 无序的集合

  • 简介
    Redis的Set是string类型的⽆序集合,元素具有唯⼀性 不重复。集合是通过哈希表
    实现的,所以添加,删除,查找的复杂度都是O(1)。
    常应⽤于:对两个集合间的数据进⾏交集、并集、差集运算
  • 添加元素
sadd key member [member] #添加多个元素
  • 获取元素
 smembers key #获取集合中所有的元素
 scard key #返回集合元素的个数
 srandmember key [count] #返回集合中随机元素的值,可以返回count个
  • 其他操作
spop key [count] #移除集合中随机的count个元素,并返回
srem key member1 [member2] #移除集合中 ⼀个或者 多个 成员
sismember key member #判断元素是否在集合中 存在返回1 不在返回0
  • 集合操作
求多个集合的交集: sinter key [key...]
求多个集合的差集 (注意⽐较顺序):sdiff key [key...]
求 多个集合的并集: sunion key [key....]

zset 有序从大到小排序

  • 简介
    Redis zset 和 set ⼀样也是string类型元素的集合,且不允许重复的成员。不同的是
    每个元素都会关联⼀个double类型的分数。redis正是通过分数来为集合中的成员
    进⾏从⼩到⼤的排序。zset的成员是唯⼀的,但分数(score)却可以重复。
    常应⽤于:排⾏榜

  • 添加元素

zadd key score member [score member] #添加多个元素
zincrby key increment member #对指定的成员增加权重
increment
  • 获取元素
zrange key start end #返回指定范围的元素
zcard key #返回元素的个数
zcount key min max #返回有序集合中权重在min和max之间的元素的
个数
zscore key member #返回有序集合中 member(元素) 的权重
(score)
zrange key start end withscores #返回当前key中 所有的权重
(score)和元素(member)

五、其他操作:

keys * #查看所有的key

keys u* #查以u开始的key

keys n??? 查找以n为开头⻓度为4个的key

keys n 查找 包含 n 的所有的key

⽀持的正则表达式:
- h?llo 匹配第⼆位为任意的字符
- h*llo 匹配第⼆位为任意字符 0个 或多个
- h[ab]llo 匹配第⼆位为 a或者b的字符的key
- hello 匹配第⼆位除了e字符以外的任意的key
- h[a-z]llo 匹配第⼆位为a-z的⼩写字⺟的key
exists key #判断键是否存在

type key #查看key对应的value的类型

del key #删除指定key

expire key 10 #设置过期时间,秒

persist key #移除key的过期时间

rename key newkey #修改key的名称(如果新的key的名字存在 则会把存在的key的 值 覆盖掉)

randomkey #随机返回⼀个 key

move key db 将键移动到指定库

flushdb #清空当前库所有key
flushall #清空所有库⾥的key

exit #退出redis客户端
quit 退出客户端

查看服务器信息
info
dbsize 当前库中有多少key
发布了4 篇原创文章 · 获赞 1 · 访问量 3331

猜你喜欢

转载自blog.csdn.net/weixin_45986798/article/details/104047893