一、Redis简介
属于NoSQL的⼀种 ( Not Only SQL ),NoSQL数据存储可以不需要固定的表格模式
⾼性能:Redis能读的速度是110000次/s,写的速度是81000次/s
支持多种数据结构:String,List,Hash,Set,SortedSet
常见的使用场景:排⾏榜、购物⻋、社交关系(粉丝、关注)、Feed流、附近的商家、分布式锁等等
二、Linux安装Redis
- redis是C语言开发,安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境
yum install gcc-c++
- redis是C语言开发,安装redis需要先将官网下载的源码进行编译,编译依赖gcc环境
yum install gcc-c++
- 安装Redis
wget http://download.redis.io/releases/redis-5.0.4.tar.gz
- 进入mysql解压之后的文件,进行编译(没安装之前的gcc环境是编译不了的)
make
- 创建文件夹
mkdir -p /usr/local/redis
- 将redis安装到指定文件夹
make PREFIX=/usr/local/redis install
- 创建目录
- ⽇志目录
mkdir -p /usr/local/redis/log
- 数据目录
mkdir -p /usr/local/redis/data
- 配置⽂件目录
mkdir -p /usr/local/redis/conf
- ⽇志目录
- 将redis解压目录中的redis.conf配置文件,复制一份到redis的安装目录下
cp redis.conf /usr/local/redis/bin/
- 修改redis默认的配置文件redis.conf
#任何ip可以访问
bind 0.0.0.0
#守护进程
daemonize yes
#密码
requirepass 123456
#⽇志⽂件
logfile "/usr/local/redis/log/redis.log"
#持久化⽂件名称
dbfilename xdclass.rdb
#持久化⽂件存储路径
dir /usr/local/redis/data
#持久化策略, 10秒内有个1个key改动,执⾏快照
save 10 1
- #使用redis.conf配置文件启动redis-server,./:意思是当前目录
./redis-server redis.conf
三、Redis使用注意事项
- 生产环境redis配置下复杂密码,防⽌被挖矿
- key命名规范
- ⽅便管理+易读
- 不要过⻓,本身key也占据空间
- 冒号分割,不要有特殊字符(空格-引号-转义符)
- 例⼦:服务名:表名:字段:主键
user-service:user:id
- 单机默认16个数据库,集群的话则没有这个概念,⽽是
solt槽位
四、Redis常见数据结构
1.Redis6数据结构之String类型介绍和应用和场景
1.1介绍
存储字符串类型的key-value
1.1应用场景
-
验证码
-
计数器、发号器
-
订单重复提交令牌
-
热点商品卡片(序列化json对象存储)
-
分布式锁
1.2常用命令
set/get
设置和获取 key-value
mget/mset
批量设置或获取多个key的值
MGET key [key ...]
MSET key value [key value ...]
incr
incr对key对应的值进行加1操作,并返回新的值;
incr key
incrby
将key对应的数字加increment。如果key不存在,操作之前,key就会被置为0
incrby key increment
setex
设置key对应字符串value,并且设置key在给定的seconds时间之后超时过期,原子操作
SETEX key seconds value
setnx
将key设置值为value,如果key不存在等同SET命令。 当key存在时什么也不做, 是set if not exists的简写。
SETNX key value
getset
设置key的值,并返回key旧的值
GETSET KEY_NAME VALUE
注意
值的长度不能超过512 MB
key命名规范,不要过长,冒号分割,业务名:表名:ID