Redis服务搭建与基础功能示例
一、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服务搭建与基础功能示例的更多相关文章
- Tomcat集群+Nginx+Redis服务搭建
由于公司新业务突然上来了,单个Tomcat实例已经不能满足业务发展的需要了,只能通过搭建集群来解决问题了.所以就出现了下面的内容: 1.Redis保存Session信息 为了保存Session信息在集 ...
- Linux redis服务搭建记录
Redis的安装 1.安装redis需要C语言的编译环境 //gcc在线安装 yum install gcc-c++ 如果提示 /var/run/yum.pid 已被锁定,解决办法,删除yum.pid ...
- Redis 服务搭建
1.redis 简介 Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis ...
- PHP进阶与redis锁限制并发访问功能示例
<?php /** * Redis锁操作类 * Date: 2017-06-30 * Author: fdipzone * Ver: 1.0 * * Func: * public lock 获取 ...
- 浅谈基于Linux的Redis环境搭建
本篇文章主要讲解基于Linux环境的Redis服务搭建,Redis服务配置.客户端访问和防火强配置等技术,适合具有一定Linux基础和Redis基础的读者阅读. 一 Redis服务搭建 1.在根路径 ...
- docker-compose 构建mongodb并导入基础数据示例
使用docker-compose构建mongodb服务并导入基础数据示例. 1.文件目录结构 ——mongo/ |——docker-compose.yml |——mongo-Dockerfile |— ...
- 黑客是如何通过开放的Redis服务入侵服务器的
0x00 简要说明 百度百科:Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-V ...
- 学习搭建 Consul 服务发现与服务网格-有丰富的示例和图片
目录 第一部分:Consul 基础 1,Consul 介绍 2,安装 Consul Ubuntu/Debian 系统 Centos/RHEL 系统 检查安装 3,运行 Consul Agent 启动 ...
- 高可用Redis服务架构分析与搭建
基于内存的Redis应该是目前各种web开发业务中最为常用的key-value数据库了,我们经常在业务中用其存储用户登陆态(Session存储),加速一些热数据的查询(相比较mysql而言,速度有数量 ...
随机推荐
- Python基础(六)
- 图解HTTP第五章
与 HTTP 协作的 Web 服务器 一台 Web 服务器可搭建多个独立域名的 Web 网站,也可作为通信路径上的中转服务器提升传输效率. 1>用单台虚拟主机实现多个域名 HTTP/1.1 规范 ...
- IOS内存管理详解
一. 基本原理 1. 什么是内存管理 移动设备的内存极其有限,每个app所能占用的内存是有限制的 当app所占用的内存较多时,系统会发出内存警告,这时得回收一些不需要再使用的内存空 ...
- android activity之间用广播传输数据
发送者: Intent intent = new Intent("com.BroadcastAction"); intent.putExtra("result" ...
- ROM、RAM、DRAM、SRAM和FLASH、PSRAM
1.ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写.ROM在系统停止供电的时候仍然可以保持数据,而RAM通常 ...
- iostat 命令详解
前言 话说搞运维的人没有两把"刷子",都不好意思上服务器操作.还好,我还不是搞运维的,我一直都自诩是开发人员,奈何现在的东家运维人员"水"的一比,还要我这个自诩 ...
- create-react-app创建的项目npm run build之后静态文件找不到
create-react-app创建的项目npm run build之后,运行build中的index.html,什么都没显示,打开浏览器的F12,发现了几个红色的报错,提示几个文件找不到. 查看生成 ...
- Go语言数据类型
目录 基本数据类型说明 整型 浮点型 字符 字符类型本质探讨 布尔型 字符串 指针 值类型与引用类型 基本数据类型默认值 基本数据类型相互转换 注意事项 其他基本类型转string类型 string类 ...
- Java学习笔记45(多线程二:安全问题以及解决原理)
线程安全问题以及解决原理: 多个线程用一个共享数据时候出现安全问题 一个经典案例: 电影院卖票,共有100座位,最多卖100张票,买票方式有多种,网上购买.自主售票机.排队购买 三种方式操作同一个共享 ...
- [CocoaPods]故障排除
安装CocoaPods 如果您在macOS 10.9.0-10.9.2上安装,当RubyGems尝试安装jsongem 时可能会遇到问题.要解决此问题,请遵循以下说明 从macOS 10.8升级到10 ...