Redis学习笔记(B站狂神说)(自己总结方便复习)

Redis学习笔记B站狂神说

redis: 非关系型数据库

一.NoSQL概述

1.为什么要用Nosql

1.单机Mysql的年代

3.分库分表+水平拆分+MySQL集群

本质:数据库(读.写)

早些年

MyISAM:表锁,十分影响效率!高并发下就会出现严重的锁问题

Innodb: 行锁.

慢慢的就开始使用分库分表来解决写的压力!MySQL在那个年代退出了表分区!这个并没有多少公司使用!

Mysql的集群,很好满足了那个年代的所有需求!

5.目前一个基本的互联 项目

“IOE”这三样标配:

I(IBM,服务器提供商,他们提供的服务器俗称“小型机”)

O(Oracle,数据库提供商,他们的软件是著名的“甲骨文商业数据库”)

E(EMC,存储设备提供商,他们提供的是“集中式存储”)

4.NoSQL的四大分类

KV键值对

  • 新浪 : Redis
  • 美团 : Redis + Tair
  • 阿里 . 百度 : Redis + memecache

文档型数据库(bson格式 和json一样)

  • MongoDB (一般必须掌握)
    • MongoDB是一个基于分布式文件存储的数据库,C++编写,主要来处理大量的文档!
    • MongoDB是一个介于关系型数据库和非关系型数据中中间的产品! MongoDB 是非关系型数据库中功能最丰富的,最像关系型数据库的!
  • ConthDB

列存储数据库

  • HBase
  • 分布式文件系统

图关系数据库

二.Redis入门

1.概述

Redis 是什么/p>

Redis (Remove Dictionary Server) 即远程字典服务

是一个开源的使用ANSI C语言编写,支持 络,可基于内存亦可持久化的日志型,Key-Value数据库,并提供多种语言的API

Redis推荐都是在Linux服务器上搭建的,我们是基于Linux学习的!

windows太老了就不下了

2.Linux下载安装

1.首先下载安装包

官 :https://redis.io/

4.基本的环境安装

6.将redis配置文件,复制到我们当前文件(防止发生意外备份一下)

当前目录:

8.启动redis服务

通过指定的配置文件启动服务

出现pong成功

设置名字

查看所有信息

将这个终端放在这,再开一个终端

执行命令

查看redis进程是否开启

12.再次查看redis进程是否关闭

4.基础知识

redis默认有16个数据库

默认使用的是第0个

可以使用select进行切换

清除所有数据库

清除当前数据库

Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库缓存消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

Redis-Key

1.exists name # 判断当前key是否存在 存在为1 反之为0

2.move name # 移除当前key

3.expire name 10 # 设置key的过期时间,单位是秒

4.ttl name # 查看当前key的剩余时间

5.type name # 查看key的类型

不会的命令官 直接搜索

Redis学习笔记(B站狂神说)(自己总结方便复习)

String

1.append name “shanjiao” # 追加字符串,如果当前key不存在相当于setkey

2.strlen name # 查看指定key的长度

3.incr views # views自增1

4.decr views # views自减1

5.incrby views 10 # 自定义设置自增步长

6.decrby views 5 # 自定义设置自减步长

#############################################################127.0.0.1:6379> set name codeyuaiiao # 设置keyOK127.0.0.1:6379> get name # 查看key"codeyuaiiao"127.0.0.1:6379> exists name # 判断某一个key是否存在(integer) 1127.0.0.1:6379> append name "shanjiao" # 追加字符串,如果当前key不存在相当于setkey(integer) 19127.0.0.1:6379> get name"codeyuaiiaoshanjiao"127.0.0.1:6379> strlen name # 查看指定key的长度(integer) 19127.0.0.1:6379> #############################################################127.0.0.1:6379> set views 0 #设置views为0  初始化浏览量OK127.0.0.1:6379> get views"0"127.0.0.1:6379> incr views  # views自增1(integer) 1127.0.0.1:6379> incr views(integer) 2127.0.0.1:6379> incr views(integer) 3127.0.0.1:6379> decr views	# views自减1(integer) 2127.0.0.1:6379> decr views(integer) 1127.0.0.1:6379> decr views(integer) 0127.0.0.1:6379> decr views(integer) -1127.0.0.1:6379> incrby views 10 # 自定义设置自增步长(integer) 9127.0.0.1:6379> incr views(integer) 10127.0.0.1:6379> decrby views 5 # 自定义设置自减步长(integer) 5127.0.0.1:6379> ######################################################## 字符串范围 range127.0.0.1:6379> set name zhangyinjieOK127.0.0.1:6379> get name"zhangyinjie"127.0.0.1:6379> getrange name 0 5  # 截取字符串"zhangy"127.0.0.1:6379> getrange name 0 -1 # 获取所有字符串"zhangyinjie"# 替换127.0.0.1:6379> set name2 codeyuaiiaoOK127.0.0.1:6379> get name2"codeyuaiiao"127.0.0.1:6379> setrange name2 1 qwe # 替换字符串(integer) 11127.0.0.1:6379> get name2"cqweyuaiiao"127.0.0.1:6379> ############################################################ setex (set with expire) #设置过期时间# setnx (set if not exist) # 不存在再设置 (在分布式锁中会常常使用!)127.0.0.1:6379> setex name 30 "hello codeyuaiiao" #设置name的值为hello codeyuaiiao 30秒后过期OK127.0.0.1:6379> ttl name 

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年10月3日
下一篇 2020年10月3日

相关推荐