Redis入门操作 1

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: Redis入门操作

学习目标

1.能够独立安装redis

2.能够通过查询文档使用redis常见命令,比如set,get…

3.能够说出RDB和AOF的优缺点,从占用存储空间\存储速度\恢复速度\数据安全性\资源消耗\启动优先级。进行对比\

概念

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

特征:

  1. 数据间没有必然的关联关系
  2. 内部采用单线程机制进行工作
  3. 高性能。官方提供测试数据,50个并发执行100000 个请求,读的速度是110000 次/s,写的速度是81000次/s。
  4. 多数据类型支持
    字符串类型 string
    列表类型 list
    散列类型 hash
    集合类型 set
    有序集合类型 zset/sorted_set
  5. 支持持久化,可以进行数据灾难恢复

应用场景

为热点数据加速查询(主要场景),如热点商品、热点新闻、热点资讯、推广类等高访问量信息等

即时信息查询,如各位排行榜、各类网站访问统计、公交到站信息、在线人数信息(聊天室、网站)、设备信号等

时效性信息控制,如验证码控制、投票控制等

分布式数据共享,如分布式集群架构中的 session 分离

消息队列

安装

在linux上安装软件前先安装下面三大件,大部分软件都依赖下列三大件

Shell

yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel

安装redis

Shell

# 下载安装包,如不能下载修改DNS:223.5.5.5 使用阿里的DNS服务器
wget http://download.redis.io/releases/redis-5.0.0.tar.gz 
# 解压
tar –xvf redis-5.0.0.tar.gz
# 进入解压目录,然后编译
make
# 安装
make install

启动和配置

启动服务端

格式 redis-server [–port 端口号]

Shell

./redis-server --port 6379

指定配置文件

Shell

./redis-server redis.conf  # redis.conf和redis-server这里在同一个目录

启动客户端

格式redis-cli [-h host] [-p port]

Shell

redis-cli –h 61.129.65.248 –p 6384

服务端配置

Code

prot 6379
# 数据存放目录
dir /redis/data
# 最大客户端连接数
# maxclents 6
# 客户端超时时间
# timeout 4000
# 日志级别
# loglevel debug|verbose|notice|warning
# 日志名
logfile "log-6379.log"

入门操作

redis支持的数据类型

字符串类型 string

列表类型 list

散列类型 hash

集合类型 set

有序集合类型 zset/sorted_set

string

基本操作

Code

SET name value //存
GET name    //取

添加/修改

Code

set key value

获取

Code

get key

删除

Code

del key

判断性添加

Code

setnx key value

添加修改多个数据

Code

mset key1 value1 key2 value2 …

添加获取多个数据

Code

mget key1 key2…

获取数据字符个数

Code

strlen key

追加信息到原始信息后部(如果原始信息存在就追加,否则新建

Code

append key value

扩展操作

设置数值数据增加指定范围的值

incr操作的数据不存在会从1开始,如果

Code

incr key
incrby key increment
incrbyfloat key increment

设置数值数据减少指定范围的值

Code

decr key
decrby key increment

设置数据具有指定的生命周期

Code

setex key seconds value
psetex key milliseconds value

扩展操作注意事项

  1. 数据操作不成功的反馈与数据正常操作之间的差异

表示运行结果是否成功

(integer) 0 → false 失败

(integer) 1 → true 成功

表示运行结果值

(integer) 3 → 3 3个

(integer) 1 → 1 1个

  1. 数据未获取到时,对应的数据为(nil),等同于null
  2. 数据最大存储量:512MB
  3. string在redis内部存储默认就是一个字符串,当遇到增减类操作incr,decr时会转成数值型进行计算
  1. 按数值进行操作的数据,如果原始数据不能转成数值,或超越了redis 数值上限范围,将报错

9223372036854775807(java中Long型数据最大值,Long.MAX_VALUE)

  1. redis所有的操作都是原子性的,采用单线程处理所有业务,命令是一个一个执行的,因此无需考虑并发带来的数据影响

key的命名规范

格式: 表名:主键名:主键值:字段名

比如 user:uid:1:name

在redis中为大V用户设定用户信息,以用户主键和属性值作为key,后台设定定时刷新策略即可

eg: user🆔3506728370:fans 12210947
eg: user🆔3506728370:blogs 6164
eg: user🆔3506728370:focuses 83

hash

基本操作

添加/修改

Code

hset key field value

获取

Code

hget key field
hgetall key

删除

Code

hdel key field1 [field2]

设置filed,如果field已经存在则不做任何操作

Code

hsetnx key field value

添加修改多个数据

Code

hmset key field1 value1 field2 value2 …

获取多个数据

Code

hmget key field1 field2 …

获取哈希表中字段数量

Code

hlen key

获取哈希表中是否存在指定的字段

Code

hexists key field

扩展操作

获取哈希表中所有的字段名或字段值

Code

hkeys key
hvals key

设置指定字段的数值数据增加指定范围的值

Code

hincrby key field increment
hincrbyfloat key field increment

注意事项

  1. hash类型中value只能存储字符串,不允许存储其他数据类型,不存在嵌套现象。如果数据未获取到,对应的值为(nil)
  2. 每个 hash 可以存储 232 - 1 个键值对
  3. hash类型十分贴近对象的数据存储形式,并且可以灵活添加删除对象属性。但hash设计初衷不是为了存储大量对象而设计的,切记不可滥用,更不可以将hash作为对象列表使用
  4. hgetall 操作可以获取全部属性,如果内部field过多,遍历整体数据效率就很会低,有可能成为数据访问瓶颈
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1月前
|
缓存 NoSQL Java
springboot的缓存和redis缓存,入门级别教程
本文介绍了Spring Boot中的缓存机制,包括使用默认的JVM缓存和集成Redis缓存,以及如何配置和使用缓存来提高应用程序性能。
85 1
springboot的缓存和redis缓存,入门级别教程
|
1月前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
53 8
|
3月前
|
SQL 存储 NoSQL
Redis6入门到实战------ 一、NoSQL数据库简介
这篇文章是关于NoSQL数据库的简介,讨论了技术发展、NoSQL数据库的概念、适用场景、不适用场景,以及常见的非关系型数据库。文章还提到了Web1.0到Web2.0时代的技术演进,以及解决CPU、内存和IO压力的方法,并对比了行式存储和列式存储数据库的特点。
Redis6入门到实战------ 一、NoSQL数据库简介
|
3月前
|
NoSQL 算法 安全
Redis6入门到实战------ 四、Redis配置文件介绍
这篇文章详细介绍了Redis配置文件中的各种设置,包括单位定义、包含配置、网络配置、守护进程设置、日志记录、密码安全、客户端连接限制以及内存使用策略等。
Redis6入门到实战------ 四、Redis配置文件介绍
|
3月前
|
NoSQL Redis 数据安全/隐私保护
Redis6入门到实战------ 二、Redis安装
这篇文章详细介绍了Redis 6的安装过程,包括下载、解压、编译、安装、配置以及启动Redis服务器的步骤。还涵盖了如何设置Redis以在后台运行,如何为Redis设置密码保护,以及如何配置Redis服务以实现开机自启动。
Redis6入门到实战------ 二、Redis安装
|
3月前
|
NoSQL Java Redis
Redis6入门到实战------思维导图+章节目录
这篇文章提供了Redis 6从入门到实战的全面学习资料,包括思维导图和各章节目录,涵盖了NoSQL数据库、Redis安装配置、数据类型、事务、持久化、主从复制、集群等核心知识点。
Redis6入门到实战------思维导图+章节目录
|
3月前
|
NoSQL 安全 Java
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)
这篇文章深入探讨了Redis中的String数据类型,包括键操作的命令、String类型的命令使用,以及String在Redis中的内部数据结构实现。
Redis6入门到实战------ 三、常用五大数据类型(字符串 String)
|
3月前
|
NoSQL 关系型数据库 Redis
Redis6入门到实战------ 九、10. Redis_事务_锁机制_秒杀
这篇文章深入探讨了Redis事务的概念、命令使用、错误处理机制以及乐观锁和悲观锁的应用,并通过WATCH/UNWATCH命令展示了事务中的锁机制。
Redis6入门到实战------ 九、10. Redis_事务_锁机制_秒杀
|
3月前
|
NoSQL Java Redis
Redis6入门到实战------ 八、Redis与Spring Boot整合
这篇文章详细介绍了如何在Spring Boot项目中整合Redis,包括在`pom.xml`中添加依赖、配置`application.properties`文件、创建配置类以及编写测试类来验证Redis的连接和基本操作。
Redis6入门到实战------ 八、Redis与Spring Boot整合
|
3月前
|
存储 NoSQL 算法
Redis6入门到实战------ 三、常用五大数据类型(列表(List)、集合(Set)、哈希(Hash)、Zset(sorted set))
这是关于Redis 6入门到实战的文章,具体内容涉及Redis的五大数据类型:列表(List)、集合(Set)、哈希(Hash)、有序集合(Zset(sorted set))。文章详细介绍了这些数据类型的特点、常用命令以及它们背后的数据结构。如果您有任何关于Redis的具体问题或需要进一步的帮助,请随时告诉我。