Redis(1)安装 & 配置

Redis

Redis(1)安装 & 配置

Redis(2)基本键值操作

Redis(3)常用维护操作

Redis(4)客户端连接:Java

Spring 集成 Reids(Spring-data-redis)


Redis 简介

Redis 是一个遵循 BSD 协议的开源高性能 key-value 数据库,不同于 mongoDB,Redis 的数据是存储在内存中的,数据的读写数据极快,广泛应用在各种 Web 应用作为数据缓存;

同时 Redis 还有以下特点:
  • 支持数据持久化,可以将内存中的数据保存到磁盘中,重启的时候可以重新再次加载使用;
  • 不仅仅支持 key-value 类型的数据,还支持堆 list,set,zset,hasn 等数据类型的储存;
  • 支持数据备份(master-slave模式);
  • 所有的操作都是原子的,同时还支持几个操作合并后原子执行;

Redis 官网: https://redis.io
Redis 中文社区文档: http://www.redis.cn/documentation.html



Redis 安装配置


Redis 本身并不支持 window ,window 版本的 Redis 由微软开源团队维护,相关的说明见: https://github.com/MicrosoftArchive/redis
在该页面下载的 Redis 需要使用 VS 进行编译,如果需要现成编译好的版本,见: https://github.com/dmajkic/redis
以下介绍 Linux 下的安装配置:

编译安装方式
 
$ wget http://download.redis.io/releases/redis-4.0.8.tar.gz
$ tar xzf redis-4.0.8.tar.gz
$ cd redis-4.0.8
$ make
apt 安装方式(Ubuntu)
 
$ apt-get update
$ apt-get redis-server

安装后测试是否安装成功,进入到 redis 安装目录,以下命令启动 Redis:
 
$ redis-server          # 启动 redis
$ redis-cli             # 登陆 redis 终端
127.0.0.1:6397 > ping   # 进行终端连接测试
pong
如果出现 Redis 的硬核方形大蛋糕(笑),并且 ping 指令执行后返回 pong,则安装成功,为了方便运行可以将 redis 安装目录写入到全局 PATH 变量中,或者将其注册为 server;



启动关闭 Redis


定位到 Redis 安装目录,如果是 apt 方式安装,可以通过 dpkg -L redis-server 获取相关信息;

1)启动Redis
 
$ redis-server                         # 以默认配置文件启动 redis
$ redis-server /etc/redis/redis.conf   # 以指定配置文件启动 redis

2)关闭Redis
关闭 Redis 需要使用到 Redis 终端 redis-cli,定位到 Redis 安装目录:
 
$ redis-cli shutdown          # 直接关闭 Redis,状态保存到持久化文件
$ redis-cli shutdown nosave   # 直接关闭 Redis,不保存状态
# 或者登陆到 redis-cli 中操作
$ redis-cli
127.0.0.1:6379 > shutdown

※ 如果 redis 无法启动,修改 redis 配置文件,将 dir 参数修改为 redis 安装目录;
※ redis 如果不以 root 权限启动,在运行 redis-cli shutdown 指令时可能会抛出无法关闭的异常,这是由于没有足够的状态文件写入权限照成的,解决方法有以下 3 种:
  • 直接以 root 权限启动 redis,以 root 权限关闭 redis;
  • 非 root 权限下以不保存状态关闭 redis (redis-cli shutdown nosave );
  • 非 root 权限下修改 redis 的配置文件中的 pidfile,logfile 参数的文件的权限,使得 redis 拥有相关的读写权限;

如果是在远程 redis 服务上执行命名,只需要指定相关连接参数即可,如下:
 
$ redis-cli -h host -p port -a password 



Redis 配置参数


修改 Redis 的配置参数以下 2 种方法:
1)修改配置文件
redis 默认配置文件位于 redis安装目录下的 redis.conf ,可以直接通过 vim 修改文件;
2)直接在 redis-cli 终端修改
 
$ redis-cli
127.0.0.1:6379 > config get *                     # 获取所有配置参数
127.0.0.1:6379 > config get conf_name             # 获取指定配置参数
127.0.0.1:6379 > config set conf_name new_value   # 修改指定配置参数
配置参数说明
 
include /path/to/local.conf  # 指定包含其它的配置文件
daemonize no                 # 设置 Redis 是否以后台进程(守护进程)运行
pidfile /var/run/redis.pid   # 当以守护进程方式运行时,Redis默认会把 pid 写入该参数指定的文件
port 6379                    # 监听端口,据说该默认端口 6379 对应手机上号码的 MERZ (意大利歌女 Alessia Merz) 
bind 127.0.0.1               # 绑定的主机地址
loglevel notice              # 指定日志记录级别,共支持四个级别:debug、verbose、notice、warning,
logfile stdout               # 日志记录方式,默认 stdout (标准输出)
dbfilename dump.rdb         # 指定本地数据库文件名
dir ./                      # 指定本地数据库存放目录
databases 16                # 设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id
save 900 1                  # 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,参数格式 <seconds><option_count>
save 300 10
save 60 10000
rdbcompression yes  # 指定存储至本地数据库时是否压缩数据, Redis采用LZF压缩;
                    # 如果为了节省CPU时间,可以关闭该选项,但会导致数据库文件变的巨大 
appendonly no       # 指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘;
                    # 如果不开启,可能会在断电时导致一段时间内的数据丢失。
                    # 因为 redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为no
appendfilename appendonly.aof  # 指定更新日志文件名
appendfsync everysec      # 指定日志更新操作,有以下 3 种方式:
                          # no:表示等操作系统进行数据缓存同步到磁盘(快) 
                          # always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
                          # everysec:表示每秒同步一次(折衷,默认值)
requirepass foobared         # 设置Redis连接密码,如果配置了连接密码,客户端在连接Redis时需要通过 AUTH <password> 命令提供密码
timeout 300                  # 当客户端闲置多久后关闭连接,0 表示无限
maxclients 128               # 设置同一时间最大客户端连接数,0 表示无限
slaveof <masterip> <masterport> # 设置当本机为slav服务时,设置master服务的IP地址及端口,在Redis启动时,它会自动从master进行数据同步
masterauth <master-password>    # 当master服务设置了密码保护时,slav服务连接master的密码
maxmemory <bytes>     # 指定Redis最大内存限制,Redis在启动时会把数据加载到内存中;
                      # 达到最大内存后,Redis会先尝试清除已到期或即将到期的Key;
                      # 当此方法处理后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。
vm-enabled no    # 指定是否启用虚拟内存机制,默认值为no
                 # VM机制将数据分页存放,由Redis将访问量较少的页即冷数据swap到磁盘上,访问多的页面由磁盘自动换出到内存中;
vm-max-memory 0              # 将所有大于vm-max-memory的数据存入虚拟内存
vm-swap-file /tmp/redis.swap # 虚拟内存文件路径,不可多个Redis实例共享
vm-page-size 32              # 虚拟内存的分页大大小,单位 byte
vm-pages 134217728           #  设置swap文件中的page数量,在磁盘上每8个pages将消耗1byte的内存
vm-max-threads 4       # 设置访问swap文件的线程数,最好不要超过机器的核数,如果设置为0,那么所有对swap文件的操作都是串行的
glueoutputbuf yes    # 设置在向客户端应答时,是否把较小的包合并为一个包发送,默认为开启
activerehashing yes  # 指定是否激活重置哈希,默认为开启
hash-max-zipmap-entries 64   # 指定在超过一定的数量或者最大的元素超过某一临界值时,采用一种特殊的哈希算法
hash-max-zipmap-value 512    
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值