Redis非关系型数据库使用教程讲解

目录

1、非关系型数据库

1.1、什么是redis

1.2、redis的特点

1.3、了解配置文件

1.4、redis也提供了客户端界面

2、redis中常用命令

2.1、关于对key操作的命令

2.2、关于库的命令

2.3、 redis支持数据类型中常用命令

2.3.1、字符串类型

2.3.2、hash数据类型

2.3.3、List(列表/队列)数据类型

2.3.4、Set数据类型

2.3.4、sort set数据类型

3、redis实际开发应用场景

1、非关系型数据库

NoSql: [Not Only Sql不仅仅是sql]. 它是对所有非关系型数据库的一种统称。非关系数据库它们之间不存在任何的关联关系。 它的数据结构: key-value模式--而且数据也可以持久化到磁盘上。

常见的非关系数据库的种类:

  • redis: 典型的非关系数据库
  • mogodb: 它是介于关系型和非关系之间。
  • hbase: 数据库【海量数据】

1.1、什么是redis

Redis是一种开放源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存和消息代理。Redis提供数据结构,例如字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志,地理空间索引和流。Redis具有内置的复制,Lua脚本,LRU驱逐,事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster自动分区提供了高可用性。

redis它是一个开源的数据库,缓存的服务器,它里面可以存放字符串,hash,列表,集合数据类型的数据,它的计算基于内存进行计算的。而且数据也可以持久化到磁盘中。 而且它也提高了哨兵模式以及集群模式来提高redis的可用性。

1.2、redis的特点

  1. Redis读取的速度是110000次/s,写的速度是81000次/s。
  2. 原子 。Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。
    ---影响redis性能的因素:内存而不是多线程。
  3. 支持多种数据结构:string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合)。
  4. 持久化--磁盘--防止数据丢失。
  5. 官方不支持window系统,但是有第三方版本。 linux系统。

1.3、了解配置文件

进入redis.conf配置文件可以看到:

259行 daemonize no: 设置redis服务启动时是否为守护进程
98行  port 6379: 修改redis的服务的端口号
75行  bind * -::* : 设置允许哪些ip连接redis服务器

1.4、redis也提供了客户端界面

redisplus下载地址:​链接:http:// https://pan.baidu.com/s/1GjNFwbmksA1JhguHgcAcSQ 提取码: 3pcm 或着直接下载目录顶部文件

注意:记得把redis.conf配置文件中94行 改为peotected-mode no,75行 改为 bind * -::*,设置redis服务端允许任意ip连接 。

2、redis中常用命令

具体参考:redis命令手册

                 Redis 命令参考 — Redis 命令参考

2.1、关于对key操作的命令

  • keys *: 查看redis中所有的key
  • exists key: 判断指定的key是否存在。存在返回1 否则返回0
  • del key: 删除指定的key
  • expire key seconds: 为指定的key设置过期时间。

2.2、关于库的命令

redis中默认存在16个库。

  • select n: 选中库 n=0~15
  • flushdb: 清空当前数据库
  • flushall: 清空所有库的数据  

2.3、 redis支持数据类型中常用命令

redis中存放的数据类型非常多,而我们使用最多的: 字符串类型,Hash类型,List队列类型, Set集合类型, SortSet有序集合类型。

2.3.1、字符串类型

redis存储数据的格式: key--value格式。 这里的key都是string类型,而我们说的redis支持的类型。指的是value的数据类型。存放的大小512M。

常用命令如下:

  • set key value: 存储字符串类型的value。
  • get key: 根据key获取对应的value字符串值。
  • mset key value key value ...: 存储多个字符串类型的value。
  • mget key key key...:获取多个key对应的value字符串值。
  • setnx key value: 如果存在指定key,则不存入,如果不存在则存入。
  • incr key: 对指定的key的value值进行递增。key对应的value必须为整型字符串。
  • decr key: 对指定的key的value值进行递减。
  • incrby key number: 按照number值进行递增。

2.3.2、hash数据类型

它存储的value就是一个hash类型,而hash类型的数据结构为:key value形式。一般用于存放对象数据。

常用命令如下:

  • hset key field value [field value]:  将哈希表 key 中的字段 field 的值设为 value
  • hget key field: 获取存储在哈希表中指定字段的值。
  • hgetall key: 获取在哈希表中指定 key 的所有字段和值
  • hkeys key: 获取所有哈希表中的字段
  • hvals key: 获取哈希表中所有值
  • hdel key field: 删除一个或多个哈希表字段

2.3.3、List(列表/队列)数据类型

它存储的value是一个List数据类型,value可以是多个,而且有序,可以重复。

常用命令如下:

  • lpush key element [element...]: 在列表中添加一个或多个值
  • Lindex key index: 获取列表中指定下标的元素。
  • lrange key start end: 获取一定范围的元素。第一个为0  最后-1
  • lpop key: 移除左边第一个元素
  • lset key index element: 替换指定位置的元素内容

2.3.4、Set数据类型

它和list类型差不多,只是它的值不允许重复,而且是无序的。

常用命令如下:

sadd key element[element....]: 在集合中添加一个或多个值
smembers key: 获取集合中所有的元素。
sinter key1 key2:返回给定所有集合的交集
sdiff key1 key2: 返回给定所有集合的差集

2.3.4、sort set数据类型

它和set比较相似,它在添加元素时,指定了值,按值排序。应用于排行榜等。

常用命令如下:

  •  zadd key score element [score element ...]:添加有序集合元素
  •  zrange key start end [withscopes]: 从小到大的形式获取集合中的元素
  •  zrevrange key start end [withscopes]: 从大到小的形式获取集合中的元素
  •  zrem k1 element [element]: 移除集合中一个或多个元素

3、redis实际开发应用场景

1.热点数据的缓存: 减少对数据库的访问频率和减轻数据库的压力。
2. 限时业务的运用: 商品秒杀  存储登录者用户信息  存储短信验证码
3. 计数器相关问题: 点赞数 收藏数 播放量。
4. 排行榜相关问题: sort set 
5. 分布式锁: ---同步锁: 
6. 限量秒杀: ---decr key:

猜你喜欢

转载自blog.csdn.net/weixin_54065960/article/details/131482497