新人入坑Redis必会的吐血总结

新人入坑Redis会的吐血总结 一、什么是Redis

Redis是一个使用C语言开发的开源的高性能的key-value存储系统,我们可以把它近似理解为Java Map。简单来讲,Redis是一种NOSQL内存数据库,小伙伴们可不要把它理解为NO SQL(不是SQL),它的全称是Not Only SQL(不仅仅是SQL),换个层面来讲,它是一种非关系型的数据库,它是作为关系型数据库的良好补充,它与传统的MySQL,Oracle不同之处在于,它是通过在内存中读写数据,大大提高了读写速度。可以说,Redis是为了解决网站高并发、高可用、高可扩展、大数据存储等一系列问题而产生的数据库解决方案,不可或缺的一部分。

它具有以下特点:

1、Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
2、Redis不仅仅支持简单的key-value类型的数据,同时还提供string、list、set、sortedset、hash等数据结构的存储。
3、Redis支持数据的备份,即master-slave模式的数据备份。

Redis有五种键值类型:

String字符类型

hash散列类型

list列表类型

set集合类型

sortedset有序集合类型

而本文将基于Redis5.0为例来介绍Redis一些相关命令的使用和踩过的坑

二、关于Redis的安装与启动 环境准备

CentOS7 (未安装Development Tools)

Redis5.0-rc3.tar.gz

安装教程请参看这里:https://www.cnblogs.com/ECJTUACM-873284962/p/9532043.html

在线环境

官网似乎提供了一个在线的Redis平台,链接在这里:

Redis启动 前端启动

按照我所提供的教程安装以后,我们只需要输入命令redis-server即可,界面如下:

5b835b1b0014c

前端停止启动

强制关闭:Ctrl+c

正常关闭[root@sakura]# redis-cli shutdown

后端启动

因为Redis在实际使用中不会只是一个Redis单独工作,启动和关闭方式中的ip地址和端口号可以在配置文件中自行修改,下面会有修改方式.

启动方式

需要将redis解压之后的源码包中的redis.conf文件拷贝到bin目录下.直接复制粘贴即可

修改redis.conf文件,将daemonize改为yes(vi redis.conf进去,:/daemonize搜索).

使用命令后端启动redis.命令行redis-server redis.conf(以配置文件启动)

查看是否启动成功.命令行 ps -aux | grep redis (直接查看redis的进程)

如果你之前按照我所提供的教程修改过,这一过程可以直接忽略就好

5b8361847bc1e

关闭方式

强制关闭:kill -9 PID

正常关闭:redis-cli -h ip地址 -p 端口号(默认端口号是6379) shutdown

在项目中,建议使用正常关闭。 因为redis作为缓存来使用的话,将数据存储到内存中,如果使用正常关闭,则会将内存数据持久化到本地之后,再关闭。如果是强制关闭,则不会进行持久化操作,可能会造成部分数据的丢失。

Redis客户端启动

启动客户端命令:[root@sakura]# redis-cli -h ip地址 -p 端口号

由于默认IP是127.0.0.1,端口是6379,我们只需要输入命令redis-cli即可

退出:127.0.0.1:6379> quit即可

三、Redis数据类型及常用命令讲解 1、Redis-String

string使用环境:主要用于保存json格式的字符串

赋值

set key value:设定key持有指定的字符串value,如果该key存在则进行覆盖操作,总是返回"OK",如果赋予相同的key,新的value会覆盖老的value

example:

127.0.0.1:6379> set username zhangsan OK 取值

get key:获取key的value。如果与该key关联的value不是string类型,redis将返回错误信息,因为get命令只能用于获取string value;如果该key不存在,返回nil

example:

127.0.0.1:6379> get username "zhangsan" 删除

del key:删除指定key,返回值是数字类型,表示删了几条数据

example:

127.0.0.1:6379> del username (integer) 1 扩展

getset key value:先获取该key的值,然后再设置该key的值

example:

127.0.0.1:6379> getset username zhangsan (nil) 127.0.0.1:6379> keys * 1) "username" 127.0.0.1:6379> get username "zhangsan"

incr key:将指定的key的value原子性的递增1,如果该key不存在,其初始值为0,在incr之后的值为1,如果value的值不能转成整型,如hello,该操作将执行失败并返回相应的错误信息,相当于++(作用:统计网站访客人数,当计数器)

example:

127.0.0.1:6379> set age 18 OK 127.0.0.1:6379> incr age (integer) 19

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygzfd.html