Redis

1 Redis入门

1.1 什么是Redis

概念:Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。

特征:

(1)数据间没有必然的关联关系;

(2)内部采用单线程机制进行工作;

(3)高性能。官方提供测试数据,50个并发执行100000 个请求,读的速度是110000 次/s,写的速度是81000次/s。

(4)多数据类型支持

  • 字符串类型,string list

  • 列表类型,hash set

  • 散列类型,zset/sorted_set

  • 集合类型 set

  • 有序集合类型 sortedset

(5)支持持久化,可以进行数据灾难恢复

1.2 Redis 的应用场景

  • 缓存(数据查询、短连接、新闻内容、商品内容等待)

  • 聊天室的在线好友列表

  • 任务队列。(秒杀、抢购。12306等等)

  • 应用排行榜

  • 网站访问统计

  • 数据过期处理(可以精确到毫秒)

  • 分布式集群架构中的session分离

2 Redis 的数据类型

2.1 Redis 的5种数据类型

Redis 是一种高级的 key-value 的存储系统,其中value 支持五种数据类型

  • 字符串(String)

  • 哈希(hash)

  • 字符串列表(list)

  • 字符串集合(set)

  • 有序字符串集合(sorted set)

关于 key 的定义,注意如下几点

  • key 不要太长,最好不要操作1024个字节,这不仅会消耗内存,还会降低查找效率

  • key 不要太短,如果太短会降低 key 的可读性

  • 在项目中,key 最好有一个统一的命名规范

2.2 字符串类型 String

字符串类型是 Redis 中最为基础的数据存储类型,它在 Redis 中是二进制安全地,这边意味着该类型存入和获取的数据相同。在 Redis中,字符串类型的 Value 最多可以容纳的数据长度是512M

2.2.1常用命令

  • set key value

设定 key 持有指定的字符串 value,如果该 key 存在则进行覆盖操作。总数会返回 "OK"

  • get key

获取 key 的value。如果与该 key 存在关联的 Value 不是 String 类型,Redis 将返回错误信息,因为 get 命令只能用于获取 String value;如果该key不存在则返回(nil)

  • del key

删除指定 key

  • incr 自增

  • decr 自减

  • incrby key step 自增步数

  • decrby key step 自减步数

2.3 哈希类型 hash

常用命令

  • hset key filed value

为指定的 key 设定 field/value (键值对)

  • hget key filed

返回指定的 Key 中的field的值

  • hdel key field [field ... ]

可以删除一个或多个字段,返回值是被删除的字段个数

  • hgetall key

可以获取该键的所有数据

2.4 列表类型 list

常用命令

  • lpush key values[value1 value2 ...]

在指定的key锁关联的list 的头部插入所有的values,如果该key不存在,该命令在插入的之前创建一个与该 key 关联的空链表,之后再向该链表的头部插入数据。插入成功,返回元素的个数

  • lpop key

返回并弹出指定的key 关联表中的第一个元素,即头部元素。如果该key不存在,返回nil;若key存在,则返回链表的头部元素

  • rpop key

从尾部弹出元素

  • lrange key start end

遍历该键的所有数据

2.5 集合类型 set

常用命令

  • sadd key values[value1 value2 ... ]

向set中添加数据,如果该key的值已有则不会重复添加

  • smembers key

获取set中所有的成员

  • srem key members[member1 member2 ... ]

删除set中指定的成员

2.6 有序集合类型 sortset

常用命令

  • zadd key values[value1 value2 ... ]

向set中添加成员

  • zrem key value

移除set中的成员

  • zrange key start end

通过索引区间返回有序集合指定区间内的成员

3 Redis 的通用命令

  • keys pattern

获取所有与pattern匹配的key,返回所有与该key匹配的key。 * 表示任意一个或多个字符,?表示任意一个字符

  • del key1 key2...

删除指定的 key

  • exists key

判断该key是否存在,1代表存在,0代表不存在

  • type key

获取指定key的类型。该命令将以字符串的格式返回。返回的字符串为string、list、set、hash,如果可以不存在返回none

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值