Redis安装及基本配置

一、Redis介绍

1、Redis是一个key-value存储系统

2、官方站点http://redis.io

3、Redis和Memcached类似,但支持数据持久化

4、支持更多value类型,除了string外,还支持hash、lists(链表)、sets(集合)、和sorted sets(有序集合)几种数据类型

5、Redis使用两种文件格式:全量数据(RDB)和增量请求(aof)。全量数据格式是把内存中的数据写入磁盘,便于下次读取文件进行加载。增量请求文件则是把内存中的数据序列化为操作请求,用于读取文件进行replay得到数据

6、Redis的存储分为内存存储、磁盘存储和log文件三部分

二、Redis下载安装配置

# wget ‘https://codeload.github.com/antirez/redis/tar.gz/2.8.21‘ -O redis-2.8.21.tar.gz

# tar zxvf redis-2.8.21.tar.gz

# cd redis-2.8.21

# make

# make PREFIX=/usr/local/redis install

# mkdir  /usr/local/redis/etc

# wget http://www.apelearn.com/study_v2/.redis_conf -O /usr/local/redis/etc/redis.conf 2> /dev/null

# wget http://www.apelearn.com/study_v2/.redis_init -O /etc/init.d/redis 2> /dev/null

# useradd -s /sbin/nologin redis && mkdir /usr/local/redis/var && chmod 777 /usr/local/redis/var && chmod 755 /etc/init.d/redis

# chkconfig --add redis

# chkconfig redis on

# service redis start

三、Redis数据结构

1、Redis数据类型-string

l       string是最简单的类型,你可以理解成与Memcached一样的类型,一个key对应一个value,其上支持的操作与Memcached的操作类似,他的功能更丰富。设置可以存二进制的对象。

l       示例

# redis-cli set mykey "fanjinbao"

# redis-cli get mykey "fanjinbao"

"fanjinbao"

也可以进入redis的终端进行创建

# redis-cli

127.0.0.1:6379> mset key1 zhangsan key2 lisi key3 hello

127.0.0.1:6379> mget key1 key2 key3

1) "zhangsan"

2) "lisi"

3) "hello"

2、Redis数据类型-list

l       list是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等。操作中key理解为链表的名字,使用List结构,我们可以轻松地实现最新消息排行等功能(比如新浪微博的TimeLine)。list的另一个应用就是消息队列,可以利用list的push操作,将任务存在list中,然后工作线程再用pop操作将任务取出进行执行。

l       示例

左侧插入

# redis-cli lpush list aaa

左侧取值

# redis-cli lpop list

右侧插入

# redis-cli rpush list lisi

右侧取值

# redis-cli rpop list

查看所有list值

# redis-cli lrange list 0 -1

3、Redis数据类型-set

l       set是集合,和我们数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作。操作中key理解为集合的名字。比如在微博应用中,可以将一个用户所有的关注人存在一个集合中,将其所有粉丝存在一个集合。因为Redis非常人性化的为集合提供了求交集、并集、差集等操作,那么就可以非常方便的实现如共同关注、共同喜好、二度好友等功能,对上面所有集合的操作,你还可以使用不同的命令选择将结果返回给客户端还是存到一个新的集合中。QQ有一个社交功能叫“好友标签”,可以个你的好友贴标签,比如“大美女”、“土豪”,“欧巴”等等,这时可以使用redis的集合来实现,把每一个用户的标签都存储在一个集合之中。

l       示例

往集合中添加元素

# redis-cli sadd set1 abc

列出集合中的元素(无序显示)

# redis-cli smembers set1

4、Redis数据类型-sort set

l       sort set是有序集合,它比set多了一个权重参数score,使得集合中的元素能够按score进行有序排列,比如一个存储全班同学成绩的sort set,其集合value可以是同学的学号,而score就可以是其考试得分,这样的数据插入集合的时候,就已经进行了天然的排序

l       示例

往集合中添加元素

# redis-cli zadd set2 12 abc

# redis-cli zadd set2 2 "cde 123"

# redis-cli zadd set2 24 123-aaa

# redis-cli zadd set2 4 a123a

列出集合中的元素(按权重参数排列升序)

# redis-cli zrange set2 0 -1

1) "cde 123"

2) "a123a"

3) "abc"

4) "123-aaa"

列出集合中的元素(按权重参数降序)

# redis-cli zrevrange set2 0 -1

5、Redis数据类型-hash

l       在Memcached中,我们经常将一些结构化的信息打包成hashmap,在客户端序列化后存储为一个字符串的值(一般是JSON格式),比如用户名的昵称、年龄、性别、积分等。

l       示例

往集合中添加元素

# redis-cli hset hash name fanjinbao

# redis-cli hset hash age 31

取集合中的元素

# redis-cli hget hash name

# redis-cli hget hash age

列出所有元素

# redis-cli hgetall hash

四、Redis持久化

1、Redis提供了两种持久化的方式,分别是RDB(Redis DataB)和AOF(Append Only File)

2、RDB,简而言之,就是不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上。

3、AOF,则是换了一个角度来实现持久化,那就是将redis执行过得所有写指令记录下来,在下次redis重新启动时,只要把这些指令从前到后再重复执行一遍,就可以实现数据恢复。

4、其实RDB和AOF两种方式也可以同时使用,在这种情况下,如果redis重启的话,则会优先采用AOF方式来进行数据恢复,这是因为AOF方式的数据恢复完整度更高。

5、如果你没有数据持久化的需求,也完全可以关闭RDB和AOF方式,这样的话,redis就变成一个纯内存数据库,就像Memcached一样

五、Redis配置

查看Redis配置信息

127.0.0.1:6379> config get *

Redis的基本配置参数:

daemonize no #默认情况下,redis并不是以daemon形式来运行的。通过daemonize配置项可以控制redis的运行形式

pidfile /path/to/redis.pid #当以daemon形式运行时,redis会生成一个pid文件,默认会生成在/var/run/redis.pid

bind 192.168.1.201 192.168.1.202 #指定绑定的ip,可以有多个

port 6379 #默认端口

unixsocket /tmp/redis.sock #也可以监听socket

unixsocketperm 755 #当监听soket时可以指定权限为755

timeout 0 #当一个redis-client一直没有请求发现server端,那么server端有权主动关闭这个连接,可以通过timeout来设置“空闲超时时限”,0表示永不关闭

tcp-keepalive 0 #TCP连接保活策略,可以通过tcp-keepalive配置项来进行设置,单位为秒,加入设置60秒想连接空闲的客户端发起一次ACK请求,以检查客户端是否已经挂掉,对于无响应的客户端则会关闭其连接,如果设置为0,则不会进行保活检测。

loglevel notice #日志级别,有四种debug、verbose、nbotice、warning

logfile “” #定义日志路径

syslog-ident redis #如果希望日志打印到syslog中,通过syslog-enable来控制,另外,syslog-ident还可以让你指定syslog里的日志标志。

syslog-facility local0 #指定syslog的设备,可以是USER或者local0-local7

databases 16 #设置数据库的总数量,select n选择数据库,0-15

Redis快照配置(rdb持久化)

save 900 1 #表示表示每15分钟且至少1个key改变,就触发一次持久化

save 60 10000 #表示每60秒至少有10000个key改变,就触发一次持久化

save 300 10 #表示每5分钟且至少10个key改变,就触发

save "" #这样就可以禁用rdb持久化

stop-writes-on-bgsave-error yes #rdb持久化写入磁盘避免不了会出现失败的情况,默认一旦出现失败,redis会马上停止写操作,如果你觉得无所谓,那就可以使用该选项关闭这个功能。

rdbcompression yes #是否要压缩

rdbchecksum yes #是否进行数据校验

dbfilename dump.rdb #定义快照文件的名字

dir ./ #定义快照文件存储路径

Redis安全相关配置

requirepass fansik #设置redis-server的密码

如果设置了密码,登录方式:

# redis-cli -a fansik

rename-command CONFIG fansik.config #将CONFIG命令更名为fansik.conf,这样就可以避免误操作,但如果使用了AOF持久化,建议不要启用该功能

rename-command CONFIG "" #也可以后面定义为空,这样就可以禁掉CONFIG命令

Redis限制相关配置

maxclients 10000 #限制最大客户端连接数

maxmemory <bytes> #设定最大内存使用数,单位是byte

maxmemmory-policy volatile-lru #指定内存移除规则

maxmemory-samples 3 #LRU算法和最小TTL算法都并非是精确的算法,而是估值,所以可以设置样本的大小,加入redis默认会检查三个key并选择其中的LRU的那个,那么你可以改变这个key样本的数量

Redis AOF持久化相关配置

appendonly on #如果是yes,则开启aof持久化

appendfilename "appendonly.aof" #指定aof文件名字,保存在dir参数指定的目录

appendfsync everysec #指定fsync()调用模式,有三种no(不调用fsync),always(每次写都会调用fsync),everysec(每秒钟调用一次fsync),第一种最快,第二种数据最安全,但性能会差一些,默认为第三种

no-appendfsync-on-rewrite no #使用no可避免当写入量非常大时的磁盘io阻塞

auto-aof-rewrite-percentage 10 #规定什么情况下会出发aof重写。改值为一个比例,10表示当aof文件增幅达到10%时则会触发重写机制

auto-aof-rewrite-min-size 64mb #重写会有一个条件,就是不能低于64mb

Redis慢日志相关配置

针对慢日志,你可以设置两个参数,一个是执行时长,单位是微秒,另一个是慢日志的长度。当一个新的命令被写入日志时,最老的一条会从命令队列中被移除

slowlog-log-slower-than 10000 #慢于10000ms则记录日志

slowlog-max-len 128 #日志长度(条数)

时间: 2024-10-23 15:18:20

Redis安装及基本配置的相关文章

redis安装以及安全配置

redis安装以及安全配置 1. 安装 sudo apt-get install redis-server 使用which查询redis执行体安装路径: which redis-server #/usr/bin/redis-server 使用whereis查询redis默认配置文件: whereis redis-server #/etc/redis/redis.conf 2. 配置开机启动 echo "/usr/bin/redis-server /etc/redis/redis.conf&quo

Redis安装、主从配置及两种高可用集群搭建

Redis安装.主从配置及两种高可用集群搭建 一.            准备 Kali Linux虚拟机 三台:192.168.154.129.192.168.154.130.192.168.154.131 用户名/密码:root/... ssh设置 修改sshd_config文件,命令为:vim /etc/ssh/sshd_config 将#PasswordAuthentication no的注释去掉,并且将NO修改为YES //kali中默认是yes 将PermitRootLogin wi

Redis安装及主从配置(转)

一.何为Redis redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合)和zset(有序集合).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入

Redis 安装 启动 连接 配置 重启

Linux下安装 ]# wget http://download.redis.io/releases/redis-2.8.17.tar.gz ]# tar xzf redis-2.8.17.tar.gz ]# cd redis-2.8.17 ]# make 启动redis服务 ]# cd src ]# ./redis-server 上面这种启动 redis使用的是默认配置,也可以通过启动参数告诉redis使用指定配置 ]# ./redis-server redis.config 连接redis

Redis安装、主从配置及aof使用

找了02,03,04三台机器,04做主,02做从,03做客户端. 都使用jumbo install redis安装了Redis(server+client). 在 02 从的 ~/.jumbo/etc/redis.conf 里 slaveof <masterip> 6379 在04 主的 ~/.jumbo/etc/redis.conf 里 appendonly yes appendfsync everysec 主从都要改: daemonize yes logfile "/home/w

Redis安装及主从配置

1.编译环境准备 1.1环境确认 Redis是一个开源.支持网络.基于内存.键值对存储数据库,使用ANSI C编写.所以在搭建Redis服务器时需要C语言的编译环境gcc或g++. 首先确认系统中是否存在C语言的编译环境,终端运行如下命令: #gcc –version 或 #g++ --version 如果出现如下字样则表示系统中存在C语言的编译环境,不需要安装. gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-44) Copyright (C) 2006 Fre

Redis安装与基本配置(转)

一.下载与安装 wget http://download.redis.io/releases/redis-3.0.0.tar.gz tar -zxvf redis-3.0.0.tar.gz -c /usr/local/ cd /usr/local/redis-3.0.0 make make install 1 2 3 4 5 二.系统参数调整 vi /etc/sysctl.conf vm.overcommit_memory = 1 //允许分配所有的物理内存 net.ipv4.tcp_max_s

Redis 安装,主从配置及Sentinel配置自动Failover

1.安装redis 首页地址:http://redis.io/ 下载地址:http://download.redis.io/ 下载最新的源码包 wget http://download.redis.io/releases/redis-2.6.16.tar.gz tar -zxvf redis-stable.tar.gz -C /usr/local/ cd /usr/local/redis-stable/ make MALLOC=libc make install 2.运行 加载配置文件并后台运行

Redis安装与简单配置

一.Redis介绍 1.redis是什么? remote dIctionary server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统.Redis提供了一些丰富的数据结构,包括 lists, sets, ordered sets 以及 hashes ,当然还有和Memcached一样的 strings结构.Redis当还包括了对这些数据结构的丰富操作. Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. 2.