【Redis】redis的安装、配置执行及Jedisclient的开发使用
定义:
Redis is an open source, BSD licensed, advanced key-value
cache and store.
It is often referred to as a data structure server since
keys can contain strings, hashes, lists, sets,sorted
sets, bitmaps and hyperloglogs.
下载:
安装
tar -zxvf解压完make、make install一下
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2ltb25jaGk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
配置
redis.conf
#是否以后台进程执行 daemonize yes #指定后台进程的pid文件写入位置 pidfile /var/run/redis .pid #监听端口,默觉得6379 port 6379 #仅仅接受下面绑定的IP请求,没有表示接受全部请求 bind 127.0.0.1 设置unix套接字,默觉得空,及不通过unix套接字来监听 # unixsocket /tmp/redis.sock # unixsocketperm 755 #client空暇多长时间,关闭链接。
timeout 5 # TCP keepalive. # 假设是非零值。当失去链接时。会使用SO_KEEPALIVE发送TCP ACKs 到client。 # 这个參数有两个作用: # 1.检測断点。 # 2.从网络中间设备来看,就是保持链接 # 在Linux上,设定的时间就是发送ACKs的周期。 # 注意:达到双倍的设定时间才会关闭链接。在其它内核上,周期依赖于内核设置。
# 一个比較合理的值为60s tcp-keepalive 0 # 指定日志级别,下面记录信息依次递减 # debug用于开发/測试 # verbose没debug那么具体 # notice适用于生产线# warning仅仅记录很重要的信息 loglevel notice #日志文件名,假设为stdout则输出到标准输出端,假设是以后台进程执行则不产生日志 logfile /data/logs/redis/redis .log # 要想启用系统日志记录器,设置一下选项为yes # syslog-enabled no # 指明syslog身份 # syslog-ident redis # 指明syslog设备。必须是一个用户或者是local0 ~ local7之中的一个 # syslog-facility local0 #设置数据库数目。第一个数据库编号为:0 databases 16 ##############快照################# #在什么条件下保存数据库到磁盘,条件能够有非常多个,满足不论什么一个条件都会进行快照 #在900秒之内有一次key的变化 save 900 1 #在300秒之内,有10个key的变化 save 300 10 #在60秒之内有10000个key变化 save 60 10000 #当持久化失败的时候,是否继续提供服务 stop-writes-on-bgsave-error yes #当写入磁盘时。是否使用LZF算法压缩数据,默觉得yes rdbcompression yes #是否加入CRC64校验到每一个文件末尾--花费时间保证安全 rdbchecksum yes #磁盘上数据库的保存名称 dbfilename dump.rdb # Redis工作文件夹。以上数据库保存文件和AOF日志都会写入此文件夹 dir /data/redis ##############同步################# #主从复制。当本机是slave时配置 # slaveof <masterip> <masterport> #当主机须要password验证时候配置 # masterauth <master-password> # 当slave和master丢失链接,或正处于同步过程中。是否响应client请求 # 设置为yes表示响应 # 设置为no,直接返回"SYNC with master in progress"(正在和主server同步中) slave-serve-stale-data yes # 设置slave是否为仅仅读。 # 注意:即使slave设置为仅仅读,也不能令其暴露在不受信任的网络环境中 slave- read -only yes # 设置slave给master发送ping的时间间隔。秒 # repl-ping-slave-period 10 # 设置传输数据I/O,主机数据、ping响应超时时间,默认60s # 这个时间一定要比repl-ping-slave-period大,否则会不断检測到超时 # repl-timeout 60 # 是否在SYNC后slave socket上禁用TCP_NODELAY? # 假设你设置为yes。Redis会使用少量TCP报文和少量带宽发送数据给slave。 # 可是这样会在slave端出现延迟。
# 假设你设置为no,那么在slave端延迟就会降低可是同步带宽要添加。 # 默认我们是为低延迟优化的。 # 可是假设流量特别大或者主从server相距比較远。设置为yes比較合理。
repl-disable-tcp-nodelay no # 设置slave优先级。默觉得100 # 当主server不能正确工作的时候,数字低的首先被提升为主server,可是0是禁用选择 slave-priority 100 ##############安全################# # 设置client连接password,由于Redis响应速度能够达到每秒100w次,所以password要特别复杂 # requirepass foobared # 命令又一次命名。或者禁用。
# 重命名命令为空字符串能够禁用一些危急命令比方:FLUSHALL删除全部数据 # 须要注意的是,写入AOF文件或传送给slave的命令别名或许会引起一些问题 # rename-command CONFIG "" ##############限制################# # 设置最多链接client数量。默觉得10000。
# 实际能够接受的请求数目为设置值减去32,这32是Redis为内部文件描写叙述符保留的 # maxclients 10000 # 设置最大使用内存数量。在把Redis当作LRU缓存时特别实用。
# 设置的值要比系统能使用的值要小 # 由于当启用删除算法时。slave输出缓存也要占用内存 # maxmemory <bytes> #达到最大内存限制时,使用何种删除算法 # volatile-lru 使用LRU算法移除带有过期标致的key # allkeys-lru -> 使用LRU算法移除不论什么key # volatile-random -> 随机移除一个带有过期标致的key # allkeys-random -> 随机移除一个key # volatile-ttl -> 移除近期要过期的key # noeviction -> 不删除key。当有写请求时,返回错误 #默认设置为volatile-lru # maxmemory-policy volatile-lru # LRU和最小TTL算法没有精确的实现 # 为了节省内存仅仅在一个样本范围内选择一个近期最少使用的key,能够设置这个样本大小 # maxmemory-samples 3 ##############AO模式################# # AOF和RDB持久化能够同一时候启用 # Redis启动时候会读取AOF文件,AOF文件有更好的持久化保证 appendonly no # AOF的保存名称,默觉得appendonly.aof # appendfilename appendonly.aof # 设置何时写入追加日志,又三种模式 # no:表示由操作系统决定何时写入。
# everysec:表示每秒运行一次写入。折中方案,推荐 # always:表示每次都写入磁盘。
appendfsync everysec # 当AOF同步策略设定为alway或everysec # 当后台存储进程(后台存储或者AOF日志后台写入)会产生非常多磁盘开销 # 某些Linux配置会使Redis由于fsync()调用产生堵塞非常久 # 如今还没有修复补丁,甚至使用不同线程进行fsync都会堵塞我们的同步write(2)调用。
# 为了缓解这个问题,使用下面选项在一个BGSAVE或BGREWRITEAOF执行的时候 # 能够阻止fsync()在主程序中被调用, no-appendfsync-on-rewrite no # AOF自己主动重写(合并命令,降低日志大小) # 当AOF日志大小添加到一个特定比率,Redis调用BGREWRITEAOF自己主动重写日志文件 # 原理:Redis 会记录上次重写后AOF文件的文件大小。 # 假设刚启动,则记录启动时AOF大小 # 这个基本大小会用来和当前大小比較。假设当前大小比特定比率大。就会触发重写。 # 你也须要指定一个AOF须要被重写的最小值,这样会避免达到了比率。 # 可是AOF文件还非常小的情况下重写AOF文件。
# 设置为0禁用自己主动重写 auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb ##############LUA脚本################# # Lua脚本的最大运行时间,单位毫秒 # 超时后会报错。而且计入日志 # 当一个脚本执行时间超过了最大执行时间 # 仅仅有SCRIPT KILL和 SHUTDOWN NOSAVE两个命令能够使用。 # SCRIPT KILL用于停止没有调用写命令的脚本。 # SHUTDOWN NOSAVE是唯一的一个,在脚本的写命令正在运行 # 用户又不想等待脚本的正常结束的情况下。关闭server的方法。
# 下面选项设置为0或负数就会取消脚本运行时间限制 lua- time -limit ##############慢查询################# # Redis慢查询日志记录超过设定时间的查询,且仅仅记录运行命令的时间 # 不记录I/O操作,比方:和client交互。发送回复等。 # 时间单位为微妙,1000000微妙 = 1 秒 # 设置为负数会禁用慢查询日志,设置为0会记录全部查询命令 slowlog-log-slower-than 10000 # 日志长度没有限制,可是会消耗内存。超过日志长度后,最旧的记录会被移除 # 使用SLOWLOG RESET命令能够回收内存 slowlog-max-len 128 ##############高级设置############### # 当有少量条目的时候,哈希使用高效内存数据结构。
hash -max-ziplist-entries hash -max-ziplist-value # 和哈希编码一样,少量列表也以特殊方式编码节省内存。
list-max-ziplist-entries 512 list-max-ziplist-value 64 # 集合仅仅在下面情况下使用特殊编码来节省内存 # -->集合所有由64位带符号10进制整数构成的字符串组成 # 以下的选项设置这个特殊集合的大小。 set -max-intset-entries # 当有序集合的长度和元素设定为下面数字时。又特殊编码节省内存 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 # 哈希刷新使用每100个CPU毫秒中的1毫秒来帮助刷新主哈希表(顶级键值映射表)。
# Redis哈希表使用延迟刷新机制。越多操作。越多刷新。
# 假设server空暇,刷新操作就不会进行,很多其它内存会被哈希表占用 # 默认每秒进行10次主字典刷新,释放内存。 # 假设你有硬性延迟需求,偶尔2毫秒的延迟无法忍受的话。设置为no # 否则设置为yes activerehashing yes # client输出缓存限制强迫断开读取速度比較慢的client # 有三种类型的限制 # normal -> 正茶馆你client # slave -> slave和 MONITOR # pubsub -> client至少订阅了一个频道或者模式 # client输出缓存限制语法例如以下(时间单位:秒) # client-output-buffer-limit <类别> <强制限制> <软性限制> <软性时间> # 达到强制限制缓存大小,立马断开链接。 # 达到软性限制,仍然会有软性时间大小的链接时间 # 默认正常client无限制,仅仅有请求后,异步client数据请求速度快于它能读取数据的速度 # 订阅模式和主从client又默认限制。由于它们都接受推送。 # 强制限制和软性限制都能够设置为0来禁用这个特性 client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 # 设置Redis后台任务运行频率,比方清除过期键任务。 # 设置范围为1到500。默觉得10.越大CPU消耗越大,延迟越小。 # 建议不要超过100 hz 10 # 当子进程重写AOF文件,下面选项开启时。AOF文件会每产生32M数据同步一次。 # 这有助于更快写入文件到磁盘避免延迟 aof-rewrite-incremental-fsync yes ##############包括################# #引入标准模板 # include /path/to/other.conf |
主从集群,加入例如以下配置
slaveof 192.168.11.176 10001
|
启动/停止
Redis持久化
Jedisclient开发
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.6.0</version>
</dependency>
package com.chiwei.redis; import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig; public class RedisClient { private static JedisPool pool = null;
private static String host = "192.168.11.176";
private static int port = 10001; static {
if (pool == null) {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(500);
config.setMaxIdle(5);
config.setMaxWaitMillis(1000);
config.setTestOnBorrow(true);
config.setTestOnReturn(true);
config.setTestWhileIdle(true);
pool = new JedisPool(config, host, port);
}
} public static void returnResource(JedisPool pool, Jedis redis) {
if (redis != null) {
pool.returnResource(redis);
}
} public static String get(String key) {
String value = null;
Jedis jedis = null;
try {
jedis = pool.getResource();
value = jedis.get(key);
} catch (Exception e) {
e.printStackTrace();
// 释放资源
pool.returnBrokenResource(jedis);
} finally {
returnResource(pool, jedis);
}
return value;
} public static void set(String key, String value) {
Jedis jedis = null;
try {
jedis = pool.getResource();
jedis.set(key, value);
jedis.expire(key, 10);
} catch (Exception e) {
e.printStackTrace();
pool.returnBrokenResource(jedis);
} finally {
returnResource(pool, jedis);
}
} public static void main(String[] args) {
set("momo", "nono");
} }
欢迎留言探讨!!
【Redis】redis的安装、配置执行及Jedisclient的开发使用的更多相关文章
- Redis for linux安装配置之—-源码安装
一‘redis单实例安装配置1.下载redis源码压缩包,并将其上传至服务器/usr/local2.解压redis源码压缩包 # tar -xzvf redis-3.2.12.tar.gz3.进入r ...
- Redis数据库的安装配置方
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/100.html?1455869650 redis 是一个高性能的key-v ...
- redis简介及安装配置
简介 redis是一个开源的高性能键值对数据库.它通过提供多种键值数据类型来适应不同场景下的存储需求,并借助许多高层级的接口使其可以胜任如缓存.队列系统等不同角色. 特性 存储结构:redis是远程字 ...
- Redis Cluster 简单安装配置
1 新建目录 “/app/redis”,输入命令 mkdir -p /app/redis 2 先安装ruby-2.3.1.tar.gz 3 测试ruby是否安装成功,输入命令:gem,如果显示以下信息 ...
- redis主从+哨兵 安装配置二
实验环境: 192.168.2.201 centos7 master sentinel 192.168.2.202 centos7 slave sentinel 192.168.2.203 cen ...
- redis的简单安装配置
一.简介 Redis是一种高级key-value数据库,数据可以持久化,支持的数据类型很丰富,有字符串,哈希,链表,集合和有序集合5种数据类型 Redis支持在服务器端计算集合的并,交和补集(diff ...
- Redis+PHP扩展的安装和Redis集群的配置 与 PHP负载均衡开发方案
以前有想过用 Memcache 实现M/S架构的负载均衡方案,直到听说了 Redis 后才发现它做得更好.发了几天时间研究了一下 Redis ,感觉真的很不错,特整理一下! 以下操作都是在 SUSE ...
- linux环境下redis数据库的安装|配置|启动
安装 下载:打开redis官方网站,推荐下载稳定版本(stable) 解压 tar zxvf redis-3.2.5.tar.gz 复制:推荐放到usr/local目录下 sudo mv -r red ...
- Redis - 环境的安装配置
Redis 下载安装步骤: 下载 redis 源码: [huey@huey-K42JE ~]$ wget http://download.redis.io/releases/redis-x.y.z.t ...
随机推荐
- hadoop2.x HDFS快照介绍
说明:由于近期正好在研究hadoop的快照机制.看官网上的文档讲的非常仔细.就顺手翻译了.也没有去深究一些名词的标准译法,所以可能有些翻译和使用方法不是非常正确,莫要介意~~ 原文地址:(Apache ...
- 创建maven项目pom.xml出现错误(依赖Missing)
Maven的依赖问题 在聚合模块时候,发现在父工程目录中的依赖存在一些问题.一开始是${pagehelper.version},后来将版本直接填写相应的版本如图下 依赖添加失败 * 在父工程的jar包 ...
- colorscheme-如何vim颜色风格
我们vim默认的风格是黑底的,如果我们想要更换其他的风格,比如字体高亮的颜色.注释的颜色等.这时候我们就需要一个属性了,如下 colorscheme darkblue 这个属性的值,其实是在 /usr ...
- 73,QT指针数组实战(指针数组与数组指针)
//指针数组,每一个指针都是一个MainWindow // MainWindow *w[3][4]; // for(int i=0;i<3;i++) // { // for(int j=0;j& ...
- WHU 1470 Join in tasks 水题
http://acm.whu.edu.cn/land/problem/detail?problem_id=1470 大概是给你一个队列,每次移动队头的数到队尾并减1,如果本身这个数为1就删去. 然后a ...
- watch---周期性的方式执行给定的指令
watch命令以周期性的方式执行给定的指令,指令输出以全屏方式显示. 选项 -n:指定指令执行的间隔时间(秒): -d:高亮显示指令输出信息不同之处: -t:不显示标题.
- 今日SGU 5.9
SGU 297 题意:就是求余数 收获:无 #include<bits/stdc++.h> #define de(x) cout<<#x<<"=" ...
- cron 简单任务调度 go
package main import ( "github.com/robfig/cron" "log" ) func main() { i := 0 c := ...
- 解决xorm逆向mssql报datetime2不兼容的异常错误
xorm作为golang开发者的一大利器,深受大家的喜爱,可是最近在逆向mssql的时候,报了这么一个错误: 最后找了半天发现xorm没有预置DateTime2类型,经过几番折腾,在xorm源码的en ...
- 下载新浪android SDK
下载新浪android SDK 必须去官网 开放平台下载 http://open.weibo.com/ 下载SDK 点击进入之后,看到的界面例如以下: 然后下载android SDK就可以.假设基于别 ...