Redis入门操作 1

本文涉及的产品
云数据库 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
目录
相关文章
|
3天前
|
存储 NoSQL Linux
Redis入门到通关之Redis5种网络模型详解
Redis入门到通关之Redis5种网络模型详解
11 1
|
3天前
|
存储 NoSQL 算法
Redis入门到通关之Redis数据结构-Hash篇
Redis入门到通关之Redis数据结构-Hash篇
12 1
|
3天前
|
存储 NoSQL Redis
Redis入门到通关之Redis数据结构-List篇
Redis入门到通关之Redis数据结构-List篇
|
3天前
|
存储 NoSQL 安全
Redis入门到通关之Redis数据结构-String篇
Redis入门到通关之Redis数据结构-String篇
|
3天前
|
存储 NoSQL Redis
Redis入门到通关之数据结构解析-SkipList
Redis入门到通关之数据结构解析-SkipList
|
3天前
|
存储 NoSQL 安全
Redis入门到通关之数据结构解析-动态字符串SDS
Redis入门到通关之数据结构解析-动态字符串SDS
11 0
|
3天前
|
NoSQL Redis
Redis入门到通关之Redis主从数据同步原理
Redis入门到通关之Redis主从数据同步原理
|
3天前
|
存储 NoSQL Java
Redis入门到通关之数据结构解析-Dict
Redis入门到通关之数据结构解析-Dict
11 2
|
3天前
|
存储 数据采集 NoSQL
Redis入门到通过之Redis实现全局唯一id
Redis入门到通过之Redis实现全局唯一id
|
3天前
|
存储 缓存 NoSQL
Redis入门到通关之Redis缓存数据实战
Redis入门到通关之Redis缓存数据实战

热门文章

最新文章