一、Redis简介

  Redis是一个非关系型远程内存数据库,它也是一个Key-value模型的数据库。Redis支持5种数据类型(string、list、set、sorted set、hash),可以将各式各样的问题很自然的映射到这些数据结构上。虽然Redis是一个内存数据库,但可通过自身的复制、持久化等特性,很方便的将数据存储到磁盘,并且Redis有着每秒上百万次的请求处理能力。

  Redis可用作数据库(Database)、缓存(Cache)和消息代理(Message Broker)。Redis还自带复制、事务、主从复制、Lua脚本、存储项淘汰、高可用Redis Sentinel、Redis Cluster等功能。

二、Redis安装

  Redis现在最新版已经升级到了5.0,epel版本为Redis3.0。这里介绍yum安装Redis:

1.yum安装:

~]# yum install -y redis
 /etc/logrotate.d/redis #
/etc/redis-sentinel.conf #哨兵服务配置文件
/etc/redis.conf #主程序配置文件
/etc/systemd/system/redis-sentinel.service.d
/etc/systemd/system/redis-sentinel.service.d/limit.conf
/etc/systemd/system/redis.service.d
/etc/systemd/system/redis.service.d/limit.conf
/usr/bin/redis-benchmark #评估程序
/usr/bin/redis-check-aof
/usr/bin/redis-check-rdb
/usr/bin/redis-cli #Redis客户端程序
/usr/bin/redis-sentinel #Redis哨兵服务程序
/usr/bin/redis-server #Redis主程序
/usr/lib/systemd/system/redis-sentinel.service #CentOS7上的哨兵服务管理程序
/usr/lib/systemd/system/redis.service ##CentOS7上的主程序管理程序
/usr/libexec/redis-shutdown
/usr/share/doc/redis-3.2.
/usr/share/doc/redis-3.2./-RELEASENOTES
/usr/share/doc/redis-3.2./BUGS
/usr/share/doc/redis-3.2./CONTRIBUTING
/usr/share/doc/redis-3.2./MANIFESTO
/usr/share/doc/redis-3.2./README.md
/usr/share/licenses/redis-3.2.
/usr/share/licenses/redis-3.2./COPYING
/usr/share/man/man1/redis-benchmark..gz
/usr/share/man/man1/redis-check-aof..gz
/usr/share/man/man1/redis-check-rdb..gz
/usr/share/man/man1/redis-cli..gz
/usr/share/man/man1/redis-sentinel..gz
/usr/share/man/man1/redis-server..gz
/usr/share/man/man5/redis-sentinel.conf..gz
/usr/share/man/man5/redis.conf..gz
/var/lib/redis #默认数据目录
/var/log/redis #默认日志目录
/var/run/redis

2.启动Redis

~]# systemctl start redis
~]# ss -lnt #查看监听端口状态,Redis默认监听端口为6379

在没有配置认证的情况下,可以直接登入Redis:

~]# redis-cli
127.0.0.1:>

可用 redis-cli -h 获取相关参数选项及功能,常用参数如下:

 -h <hostname>:Redis服务端的地址
-p <port>:指定连接的端口,默认为6379
-s <socket>:若不是通过IP+端口则可使用指定socket登录
-a <password>:连接Redis的密码,Redis的认证设置只有用户名没有密码。Redis用户名默认就一个,没有权限分级的概念。

连接至Redis后可用 SELECT 选择数据库:

:> SELECT  #Redis默认用数字来代表库。
OK

3.Redis种5值的类型的基本使用介绍

  Redis是Key-value类型,它所有的数据都是键值类型,但值的类型有5种:

1.String

  常用指令:

 SET <key> <value> #将key的值设置为value,value可以是数值。还可以设置数据的有效期限,过期时间。
GET <key> #获取key的数据
APPEND <key> <value> #追加数据
DECR <key> #键值加1
DECRBY #键值加指定数值
INCR <key> #键值减1
INCR <key> #键值减指定数值
MSET <key> <value> #一次创建多个键值
MGET <key> #一次查看多个键值

例:

 127.0.0.1:> SET name tom
OK
127.0.0.1:> GET name
"tom"
127.0.0.1:> APPEND name jerry
(integer)
127.0.0.1:> GET name
"tomjerry"
127.0.0.1:> SET count
OK
127.0.0.1:> INCR count
(integer)
127.0.0.1:> GET count
""
127.0.0.1:> INCR count
(integer)
127.0.0.1:> GET count
""
127.0.0.1:> INCRBY count
(integer)
127.0.0.1:> GET count
""
127.0.0.1:>

2.List

  LIst可以理解为一个队列,如图:

  常用指令:

 LSET <key> <index> <value> #根据索引设定值
RPUSH <key> <value> #从右侧增加值
LPUSH <key> <value> #从左侧增加值
RPOP <key> #从右侧弹出(删除)值,只能是首尾
LPOP <key> #从左侧弹出(删除)值,只能是首尾
RPUSHX <key> <value> #从右侧增加值,列表必须存在
LPUSHX <key> <value> #从左侧增加值,列表必须存在
LREM #删除指定值
LINDEX <key> <index> #从索引中获得一个元素
LLEN <key> #查看Key有多少个元素

例:

 127.0.0.1:> LPUSH weekdays Mon Tue
(integer)
127.0.0.1:> LINDEX weekdays
"Tue"
127.0.0.1:> LINDEX weekdays
"Mon"
127.0.0.1:> RPUSH weekdays Wed Thu
(integer)
127.0.0.1:> LINDEX weekdays
"Wed"
127.0.0.1:> LINDEX weekdays
"Thu"
127.0.0.1:> LPOP weekdays
"Tue"
127.0.0.1:> RPOP weekdays
"Thu"
127.0.0.1:> LINSERT weekdays BEFORE Wed Fri
(integer)
127.0.0.1:> LINDEX weekdays
"Fri"

3.Hash

 HSET <key> <field> <value> :设定键和值还有下标
HMSET <key> <field> <value>:设定多个键和值还有下标
HGET <key> <field>:查看键的下标
HMGET <key> <field>:查看多个键的下标
HKEYS <key>:显示所有定义的key
HVALS <key>:显示所有的value
HDEL <key> <field>:删除指定键的下标
HGETALL <key>:显示所有

例:

 127.0.0.1:> HSET stu1 name tom
(integer)
127.0.0.1:> HSET stu1 age
(integer)
127.0.0.1:> HMSET stu1 gender Male major Computer
OK
127.0.0.1:> HKEYS stu1
) "name"
) "age"
) "gender"
) "major"
127.0.0.1:> HVALS stu1
) "tom"
) ""
) "Male"
) "Computer"

4.Set

  无序集合数据类型,主要用来求交差并补集的

例:

 127.0.0.1:> SADD tom jack hermes tony
(integer)
127.0.0.1:> SADD jerry tony trump real
(integer)
127.0.0.1:> SINTER tom jerry
) "tony"
127.0.0.1:> SUNION tom jerry
) "hermes"
) "jack"
) "tony"
) "real"
) "trump"
127.0.0.1:> SDIFF jerry tom
) "trump"
) "real"
127.0.0.1:> SDIFF tom jerry
) "hermes"
) "jack"
127.0.0.1:> SPOP jerry
"trump"
127.0.0.1:> SMEMBERS tom
) "tony"
) "hermes"
) "jack"

5.Sorted-set

  与Set类型相似,但Sort-set属于有序集合。

例:

 127.0.0.1:> ZADD colors  red  blue  yellow  green  gray
(integer)
127.0.0.1:> ZCARD colors
(integer)
127.0.0.1:> ZSCORE colors red
""
127.0.0.1:> ZRANGE colors
) "red"
) "blue"
) "yellow"
) "gray"
) "green"

4.订阅

  常用指令:

 PSUBSCRIBE <pattern>:订阅指定频道的指定内容
PUBLISH <channel> <message>:生成频道并往频道中生产信息
PUNSUBSCRIBE <pattern>:取消订阅指定频道的指定内容
SUBSCRIBE <channel>:订阅整个频道
UNSUBSCRIBE <channel>:取消订阅整个频道

例:

Redis服务搭建与基础功能示例的更多相关文章

  1. Tomcat集群+Nginx+Redis服务搭建

    由于公司新业务突然上来了,单个Tomcat实例已经不能满足业务发展的需要了,只能通过搭建集群来解决问题了.所以就出现了下面的内容: 1.Redis保存Session信息 为了保存Session信息在集 ...

  2. Linux redis服务搭建记录

    Redis的安装 1.安装redis需要C语言的编译环境 //gcc在线安装 yum install gcc-c++ 如果提示 /var/run/yum.pid 已被锁定,解决办法,删除yum.pid ...

  3. Redis 服务搭建

    1.redis 简介 Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis ...

  4. PHP进阶与redis锁限制并发访问功能示例

    <?php /** * Redis锁操作类 * Date: 2017-06-30 * Author: fdipzone * Ver: 1.0 * * Func: * public lock 获取 ...

  5. 浅谈基于Linux的Redis环境搭建

    本篇文章主要讲解基于Linux环境的Redis服务搭建,Redis服务配置.客户端访问和防火强配置等技术,适合具有一定Linux基础和Redis基础的读者阅读. 一  Redis服务搭建 1.在根路径 ...

  6. docker-compose 构建mongodb并导入基础数据示例

    使用docker-compose构建mongodb服务并导入基础数据示例. 1.文件目录结构 ——mongo/ |——docker-compose.yml |——mongo-Dockerfile |— ...

  7. 黑客是如何通过开放的Redis服务入侵服务器的

    0x00 简要说明 百度百科:Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-V ...

  8. 学习搭建 Consul 服务发现与服务网格-有丰富的示例和图片

    目录 第一部分:Consul 基础 1,Consul 介绍 2,安装 Consul Ubuntu/Debian 系统 Centos/RHEL 系统 检查安装 3,运行 Consul Agent 启动 ...

  9. 高可用Redis服务架构分析与搭建

    基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysql而言,速度有数量 ...

随机推荐

  1. mysql的innodb和myisam的区别和应用场景

    1. 区别: (1)事务处理: MyISAM是非事务安全型的,而InnoDB是事务安全型的(支持事务处理等高级处理): (2)锁机制不同: MyISAM是表级锁,而InnoDB是行级锁: (3)sel ...

  2. Python3基础知识之日期时间与字符的转换

    问题:“猿类”们都知道,编程中都会涉及到日期.时间类型与字符串类型的转换.不同场景,需要将字符串格式转换为日期类型:也需要将日期类型转换为字符串格式. 目标: 学习和积累python中time和dat ...

  3. 重写comparater比较器

    TreeSet 能自动对对象进行排序,但是一般需要在类中重写比较方法 比较器介绍 在类中实现Comparable接口,并重写compareTo方法 排序对象类 package typing.overr ...

  4. kbmmw 5.07 正式发布

    来了来了 5.07.00 Dec 9 2018           Important notes (changes that may break existing code)         === ...

  5. scp复制文件到指定端口

    1.scp基本格式 scp file user@host:/dir 2.scp复制文件到指定端口 scp默认连接的端口是22端口,如果ssh不是使用标准的22端口则使用-P(P大写)指定: scp - ...

  6. 04-jQuery的属性操作

    jquery的属性操作模块分为四个部分:html属性操作,dom属性操作,类样式操作和值操作 html属性操作:是对html文档中的属性进行读取,设置和移除操作.比如attr().removeAttr ...

  7. 第四章 javascript的语句、对象笔记摘要

    表达式语句 greeting ="Hello"+name;//赋值语句 i*=3; count++; delete o.x; //删除 alert(greeting); //函数 ...

  8. 深入理解Java虚拟机二之Java内存区域与内存溢出异常

    运行时数据区域 1.线程独有的内存区域 PROGRAM COUNTER REGISTER 程序计数器 程序计数器空间较小,是当前线程执行字节码的行号指示器,字节码解释器工作时就是通过改变这个计数器的值 ...

  9. Visual Studio 2013 配置多个Release版本,并为每个版本配置预编译的宏

    最近开发过程中,需要将同一份工程编译成两个版本,分别为ReleaseA和ReleaseB. ReleaseB比ReleaseA少了部分功能,所以希望在编译的时候,根据不同的版本编译工程中相应的代码. ...

  10. Visual Studio 2017中使用正则修改部分内容

    最近在项目中想实现一个小工具,需要根据类的属性<summary>的内容加上相应的[Description]特性,需要实现的效果如下 修改前: /// <summary> /// ...