1 什么是redis
Redis 是一个开源(BSD 许可)的内存数据结构存储,用作数据库、缓存和消息代理。Redis 提供数据结构,例如字符串、散列、列表、集合、具有范围查询的排序集合、位图、超日志、地理空间索引和流。Redis 具有内置复制、Lua 脚本、LRU 驱逐、事务和不同级别的磁盘持久性,并通过 Redis Sentinel 和 Redis Cluster 自动分区提供高可用性。
Redis是一个开源的使用ANSI C语言编写可基于内存亦可基于磁盘,Key-Value数据库。类似于map
2为什么要使用redis
1.Redis读取的速度是110000次/s,写的速度是81000次/s
2.原子。Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
3.支持多种数据结构:string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合)
4.持久化--磁盘,主从复制(集群)
5.官方不支持window系统,但是又第三方版本。 linux系统。
3 如何使用redis
3.1redis插件
yum install -y gcc-c++
3.2插件下载 Redis下载和安装
下载好上传到linux文件中 并解压好 tar -zxvf redis-6.2.6.tar.gz(解压)
3.3 编译redis 和 安装 ----进入解压目录
编译redis 和 安装 ----进入解压目录
make
make install
3.4 启动redis
redis-server /redis配置文件所在的路径
显示这个就是运行成功了
3.5客户连接redis服务
redis-cli -h ip -p 端口号
如果不跟-h 和 -p 默认为 127.0.0.1 6379
![](https://img-blog.csdnimg.cn/c7ee4541b3774f98a74bf35bc665ff24.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA4oWo5Lq_5bCR5aWz55qE5qKm,size_17,color_FFFFFF,t_70,g_se,x_16)
3.6 设置redis启动时后台启动
进入redis中 编辑 redis.conf vi redis.conf 吧no改为yes
3.7 redis图像化界面--redisplus
RedisPlus下载-RedisPlus官方正式版下载[电脑软件]-天极下载 (yesky.com)
3.8 redis默认不允许远程连接。--修改redis.conf配置文件
3.9安装redis 并且后台启用 使用图形化界面也能连接
4redis中常见的命令
1. keys *: 查询当前redis中所有的key.
2. expire key second: 为指定的key设置过期时间
3. ttl key: 查看指定key的过期时间
4. del key: 删除指定的key
5. exists key: 判断指定的key是否存在。 存在返回1 不存在返回0
4.1 redis中数据库操作命令
select index: 选择相应的数据库
flushdb: 清空当前库
flushall: 清空所有库
4.2 redis支持的数据类型
http://redisdoc.com 学习文档
redis中key的类型都是字符串类型。
redis中value的类型很多。 字符串、散列、列表、集合、具有范围查询的排序集合、位图、超日志、地理空间索引和流 。而我们主要学习: string,hash,list,set,sort set.
4.3redisString数据类型的命令
1. set key value: 存放指定key的字符串类型。
2. setnx key value: 如果指定的key存在,则不存放redis中,如果不存在则存入redis.
3. get key: 获取指定key值
4. mset key value key value....: 存储多个key和value的值
5. mget key key key...:获取多个key对于的值。
6. incr key: 对指定的key的value进行累加。
7. decr key: 对指定的key的value进行递减。
4.4hash散列类型的命令
1. HSET key field value [field value]: 存放指定key的field和value值
2. hget key field: 获取指定key的field对于的value值。
3. hkeys key: 获取指定key对于的所有field.
4. hvals key: 获取指定key对应 的所有value值。
5. hgetall key: 获取指定key下所有的内容。
4.5list队列类型的命令
1, lpush key value: 根据key从左边存放对应的队列数据,
2. lrange key start end: 获取key指定的元素
3. LPOP key: 从左边获取指定key的第一个元素 并移除该元素。
4.6 set集合类型的命令
和list最大的区别就是 不允许重复 无序的
SADD key value value ....
smembers key: 获取指定key下所有的元素。
SPOP key: 获取指定key的元素 随机。
SISMEMBER key value 判断元素是否在集合中
4.7 sort set集合类型的命令
ZADD key score member score membere
ZRANGE
5redis应用场景
1、热点数据的缓存: 作为缓存数据。缓存都是基于内存走
2. 限时业务的运用: 秒杀 存放用户信息 短信保存 。expire
3. 计数器相关问题: 点赞量 播放量 访问量 incr
4. 排行榜相关问题:
5. 分布式锁: setnx()