Redis学习

 

什么是Redis?

  • Redis 是用C语言开发的一个开源的高性能键值对( key-value )内存数据库,它是一种NoSQL 数据库。
  • 它是【单进程单线程】的内存数据库,所以说不存在线程安全问题。
  • 它可以支持并发 10W QPS,所以说性能非常优秀。之所以单进程单线程性能还这么好,是因为底层采用了【IO多路复用(NIO思想)】
  • 相比Memcache这种专业缓存技术,它有更优秀的读写性能,及丰富的数据类型。
  • 它提供了五种数据类型来存储【值】:字符串类型(string)、散列类型(hash)、列表类型(list)、集合类型(set)、有序集合类型(sortedset、zset)

Redis官网

  • 官网地址:http://redis.io/
  • 中文官网地址:http://www.redis.cn/
  • 下载地址:http://download.redis.io/releases/

什么是NoSQL?

  • NoSQL ,即Not-Only SQL (不仅仅是SQL ),泛指非关系型的数据库。
  • 什么是关系型数据库?数据结构是一种有行有列的数据库
  • NoSQL 数据库是为了解决高并发、高可用、高可扩展、大数据存储问题而产生的数据库解决方案。
  • NoSQL 可以作为关系型数据库的良好补充,但是不能替代关系型数据库。

   MySQL(关系型数据库) ---> NoSQL ---> NewSQL(TiDB)

NoSQL数据库分类

  • 键值(Key-Value)存储数据库

         相关产品: Tokyo Cabinet/Tyrant 、Redis 、Voldemort 、Berkeley DB
         典型应用: 内容缓存,主要用于处理大量数据的高访问负载。
         数据模型: 一系列键值对
         优势: 快速查询
         劣势: 存储的数据缺少结构化

  • 列存储数据库

        相关产品: Cassandra , HBase , Riak
        典型应用:分布式的文件系统
        数据模型:以列簇式存储,将同一列数据存在一起
        优势:查找速度快,可扩展性强,更容易进行分布式扩展
        劣势:功能相对局限

  • 文档型数据库

       相关产品: CouchDB 、MongoDB
       典型应用: Web 应用(与Key-Value 类似, Value 是结构化的)
      数据模型: 一系列键值对
      优势:数据结构要求不严格
      劣势:

  • 图形( Graph )数据库

      相关数据库: Neo4J 、InfoGrid 、Infinite Graph
      典型应用:社交网络
      数据模型:图结构
      优势:利用图结构相关算法。
      劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案。

Redis应用场景

  • 内存数据库(登录信息、购物车信息、用户浏览记录等)
  • 缓存服务器(商品数据、广告数据等等)(最多使用)
  • 解决分布式集群架构中的session 分离问题( session 共享)
  • 任务队列(秒杀、抢购、12306等等)
  • 分布式锁的实现
  • 支持发布订阅的消息模式
  • 应用排行榜(有序集合)
  • 网站访问统计
  • 数据过期处理(可以精确到毫秒)

Redis单机版安装配置

      Redis 没有官方的Windows 版本,所以建议在Linux 系统上安装运行,我们使用 CentOS 7 ( Linux 操作系统的一个系列)作为安装环境。

Redis安装

      第一步:检查并安装C 语言需要的GCC 环境

yum gcc-c

yum install -y gcc-c++
yum install -y wget

第二步:下载并解压缩Redis 源码压缩包

wget http://download.redis.io/releases/redis-5.0.5.tar.gz
tar -zxf redis-5.0.5.tar.gz

第三步:编译Redis 源码,进入redis-5.0.4 目录,执行编译命令

第四步:安装Redis ,需要通过PREFIX 指定安装路径

make & make install prefix=/wang/server/redis

报错

make malloc=libc  & make install prefix=/wang/server/redis

备注:编译前必须先确保编译目标路径文件夹存在。

解释:分配器allocator, 如果有MALLOC  这个 环境变量, 会有用这个环境变量的 去建立Redis。

而且libc 并不是默认的 分配器, 默认的是 jemalloc, 因为 jemalloc 被证明 有更少的 fragmentation problems 比libc。

但是如果你又没有jemalloc 而只有 libc 当然 make 出错。 所以加这么一个参数,运行如下命令:make MALLOC=libc

 

Redis启动

   前端启动
          启动命令: redis-server ,直接运行bin/redis-server 将以前端模式启动
          关闭命令: ctrl+c
          启动缺点:客户端窗口关闭则redis-server 程序结束,不推荐使用此方法
          启动图例:

后端启动(守护进程启动)

第一步:拷贝redis-5.0.4/redis.conf 配置文件到Redis 安装目录的bin 目录

cp /root/redis-5.0.4/redis.conf /wang/server/redis/bin/

    Linux VIM常用命令是ESC,然后:wq(保存并退出),:q!(不保存并强制退出)

删除文件夹: rm -rf 文件名
新建文件夹:mkdir 文件名

按ESC键 跳到命令模式,然后:

:w 保存文件但不退出vi 
:w file 将修改另外保存到file中,不退出vi 
:w! 强制保存,不推出vi 
:wq 保存文件并退出vi 
:wq! 强制保存文件,并退出vi 
q: 不保存文件,退出vi 
:q! 不保存文件,强制退出vi 
:e! 放弃所有修改,从上次保存文件开始再编辑

搜索字符串:在命令模式下输入/然后输入你需要查找的字符串即可。向光标之下寻找你所输入的字符串

vim常用操作

1、正常模式

yy 复制当前行

nyy 复制从当前行开始后的n行

p 粘贴已复制的内容

dd 删除当前行

ndd 删除从当前行开始后的n行

 

2、插入模式

i 小写字母i,在光标位置插入

a 小写字母a,在光标的下一个位置插入

I 大写字母I,在光标所在行的第一个非空格处插入

A 大写字母A,在光标所在行的最后一个字符处插入

o 小写字母o,在光标所在行的下一行处插入新行

O 大写字母O,在光标所在行的上一行处插入新行

r 小写字母r,替换光标所在处的字符一次

R 大写字母R,持续替换光标所在处的字符,直到按下ESC

 

3、命令行模式

按 : 进入命令模式

:/xyz 搜索字符串xyz

:%s/x/y 将每行中第一个x替换成y

:%s/x/y/g 将每行中所有的x替换成y

:n,ms/x/y 将第n-m行的x替换成y

:!ifconfig 执行命令ifconfig

:w 保存文件

:w! 强制保存文件(前提是用户有修改文件访问权限的权限)

:q 退出缓冲区

:q! 强制退出缓冲区而不保存

:wq 保存文件并退出缓冲区

:ZZ  保存文件并且退出

:wq! 强制保存文件并退出缓冲区(前提是用户有修改文件访问权限的权限)

:w <filename> 另存为名为filename文件

:n1,n2 w <filename> 将n1行到n2行的数据另存为名为filename文件

: x 如果文件有更改,则保存后退出。否则直接退出。

 

4、块选择模式

按下 CTRL + v 进入块选择模式

按上下左右箭头选中文本

按 I 或 A 键在选中字符 前 或 后 插入字符,按 d 或 x 删除当前选中的字符

按ESC键退出即生效

第二步:修改redis.conf

vim redis.conf
# 将`daemonize`由`no`改为`yes`
daemonize yes
# 默认绑定的是回环地址,默认不能被其他机器访问
# bind 127.0.0.1
# 是否开启保护模式,由yes该为no 这个没找见呀?---
protected-mode no


:wq! 强制保存文件,并退出vi

第三步:启动服务

./redis-server redis.conf

Redis命令行客户端

./redis-cli -h 127.0.0.1 -p 6379

如果不指定主机和端口也可以

./redis-cli

后端启动的关闭方式

./redis-cli shutdown

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仰望星空@脚踏实地

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值