Redis 入门概述

一、概述

1、Redis:REmote DIctionary Server(远程字典服务器)

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster

是完全开源免费的,用C语言编写的,遵守BSD协议,
是一个高性能的(key/value)分布式内存数据库,基于内存运行
并支持持久化的NoSQL数据库,是当前最热门的NoSql数据库之一,
也被人们称为数据结构服务器

2、Redis 与其他 key - value 缓存产品有以下三个特点

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

注意:

1 内存中的数据断电消失,但是redis 具有持久化的支撑是RDB \AOF,在重启之后可以再次加载进行使用 2 3

二、使用场景

1、内存存储和持久化

1redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务 2 3

2、取最新N个数据的操作

1如:可以将最新的10条评论的ID放在List集合 2 3

3、 pub/sub 发布/订阅 构建实时消息系统

1pubish subscribse PSubscribe命令 2 3

4、计数器

1INCR和DECR命令 2 3

5、定时器

1精确设定过期时间 2 3

6、 Uniq操作,获取某段时间内所有数据排重值

1Set数据类型 2 3

7、构建队列系统

1 使用list可以构建队列系统,使用sort set 甚至可以构建优先级队列 2 3

三、官网

redis 官网英文版

redis 官网中文版

redis 的下载直接在官网进行下载

四、下载安装 Redis

前提:在Linux环境或者 VMWare +VMTools 虚拟环境

1、官网安装

Download, extract and compile Redis with:

1$ wget http://download.redis.io/releases/redis-3.2.8.tar.gz 2$ tar xzf redis-3.2.8.tar.gz 3$ cd redis-3.2.8 4$ make 5

The binaries that are now compiled are available in the src directory. Run Redis with:

1$ src/redis-server 2

You can interact with Redis using the built-in client:

1$ src/redis-cli 2redis> set foo bar 3OK 4redis> get foo 5"bar" 6

2、CentOS6安装redis

1)、检查安装依赖程序

1yum install gcc-c++ 2yum install -y tcl 3yum install wget 4

2)、线上获取安装文件

1wget http://download.redis.io/releases/redis-3.2.8.tar.gz 2

3)、解压文件

1tar -xzvf redis-3.2.8.tar.gz 2mv redis-3.2.8 /usr/local/redis 3

4)、编译安装

1cd /usr/local/redis 2make 3make install 4

5)、复制配置文件

1mkdir -p /etc/redis 2cp redis.conf /etc/redis 3

6)、修改配置文件

1vim /etc/redis/redis.conf 2仅修改: daemonize yes 3

Deamonuze 守护进程 类似windows的server ,改为后台启动,如果为no时一关闭窗口,则断开连接

7)、启动 redis 服务

1/usr/local/bin/redis-server /etc/redis/redis.conf 2 3ps -ef | grep redis 查看redis是否启动 4

8)、使用客户端

1redis-cli 2 3>set name david 4OK 5>get name 6"david" 7

9)、关闭命令

1redis-cli shutdown 2

10)、开机自启配置

1echo "/usr/local/bin/redis-server /etc/redis/redis.conf &" >> /etc/rc.local 2

参考 https://segmentfault.com/a/1190000002685224

运行make命令时出现的错误解析:

1make[3]: gcc: Command not found 2make[3]: *** [net.o] Error 127 3make[3]: Leaving directory `/opt/redis-2.8.9/deps/hiredis' 4make[2]: *** [hiredis] Error 2 5make[2]: Leaving directory `/opt/redis-2.8.9/deps' 6make[1]: [persist-settings] Error 2 (ignored) 7 CC adlist.o 8/bin/sh: cc: command not found 9make[1]: *** [adlist.o] Error 127 10make[1]: Leaving directory `/opt/redis-2.8.9/src' 11make: *** [all] Error 2 12

情况一:

1)、有网时

1yum install gcc-c++ 2

2)、二次make ,出现异常

1yum install gcc make 2make[1]: Entering directory `/opt/redis-3.2.8/src' 3 CC adlist.o 4在包含自 adlist.c:34 的文件中: 5zmalloc.h:50:31: 错误:jemalloc/jemalloc.h:没有那个文件或目录 6zmalloc.h:55:2: 错误:#error "Newer version of jemalloc required" 7make[1]: *** [adlist.o] 错误 1 8make[1]: Leaving directory `/opt/redis-3.2.8/src' 9make: *** [all] 错误 2 10

3)、运行make distclean之后再make

4)、如果make完成后继续执行make install

情况二(IOS 镜像中安装gcc)

1)、

2)、下图是关机后,setting选择后重新启动CentOS

3)、在终端中输入 cd /media/CentOS_5.2_Final/CentOS 回车

4)、分别执行如下命令

1rpm -ivh cpp-4.1.2-48.el5.i386.rpm回车 2rpm -ivh kernel-headers-2.6.18-194.el5.i386.rpm回车 3rpm -ivh glibc-headers-2.5-49.i386.rpm 回车 4rpm -ivh glibc-devel-2.5-24.i386.rpm 回车 5rpm -ivh libgomp-4.4.0-6.el5.i386.rpm 回车 6rpm -ivh gcc-4.1.2-48.el5.i386.rpm 回车 7 8rpm -ivh glibc-headers-2.5-49.i386.rpm 在有的centos版本中没有,可以忽略 9

5)、二次make,报告Jemalloc/jemalloc.h:没有那个文件或目录,用make distclean解决

6)、三次make,安装成功

7)、/usr/local/bin目录下看到redis大片相关命令和文件,安装成功

这里写图片描述

8)、安装成功执行命令和出厂默认配置文件设置与调整

保留出厂默认文件,将它拷贝一份到别处,开始运行Redis

代码交流 2021