redis 安装和配置

首先编译

tar -zxvf redis-3.0.3.tar.gz
cd redis-3.0.3
make
cd src
make install

make完成后,有产生可执行文件(绿色的)
                     redis-server:redis服务器的启动程序
                     redis-cli:redis命令行工具,也可为客户端
                     redis-benchmark:redis性能测试工具(读写)
                     redis-stat:redis状态检测工具(状态参数延迟)

移动文件,便于管理

mkdir -p /usr/local/redis/bin
mkdir -p /usr/local/redis/etc

cp /opt/yuanhai/redis-3.0.3/redis.conf   /usr/local/redis/etc

#并将src目录下的7个命令文件(绿色的),移动到/usr/local/redis/bin/ 
cp mkreleasehdr.sh  redis-sentinel  redis-server  redis-trib.rb    redis-benchmark  redis-check-dump redis-cli /usr/local/redis/bin

修改redis.conf 配置监听端口port 6379改为 port 6378

指定配置文件启动redis

./redis-server /usr/local/redis/etc/redis.conf

默认是前台运行

redis的后台启动并运行需要通过配置文件中的参数设置。

Redis的配置文件中有哪些配置呢?

daemonize 如果需要在后台运行,把该项改为yes

pidfile  当redis在后台运行的时候,Redis默认会把pid文件放在/var/run/redis.pid,你可以配置到其他地址。当运行多个redis服务时,需要指定不同的pid文件和端口

bind 绑定ip,设置后只接受来自该ip的请求

port 监听端口,默认是6379

loglevel 分为4个等级:debug verbose notice warning

logfile 用于配置log文件地址

databases 设置数据库个数,默认使用的数据库为0

save 设置redis进行数据库镜像的频率。

rdbcompression 在进行镜像备份时,是否进行压缩

dbfilename 镜像备份文件的文件名

Dir 数据库镜像备份的文件放置路径

Slaveof 设置数据库为其他数据库的从数据库

Masterauth 主数据库连接需要的密码验证

Requriepass 设置 登陆时需要使用密码

Maxclients 限制同时使用的客户数量

Maxmemory 设置redis能够使用的最大内存

Appendonly 开启append only模式

Appendfsync 设置对appendonly.aof文件同步的频率(对数据进行备份的第二种方式)

vm-enabled 是否开启虚拟内存支持   (vm开头的参数都是配置虚拟内存的)

vm-swap-file 设置虚拟内存的交换文件路径

vm-max-memory 设置redis使用的最大物理内存大小

vm-page-size 设置虚拟内存的页大小

vm-pages 设置交换文件的总的page数量

vm-max-threads 设置VM IO同时使用的线程数量

Glueoutputbuf 把小的输出缓存存放在一起

hash-max-zipmap-entries 设置hash的临界值

Activerehashing 重新hash

一、string 类型(redis的string可以包含任何数据,比如jpg图片或者序列化的对象)

set name lijie

setnx name lijie 如果key已经存在,返回0,不更新数据,nx是not exist的意思

get name 取出数据

setex 指定键的有效期

setex haicolor 10 red 

setrange email 6 li-jie.me 设置子字符串从第6位开始替换

mset/mget 批量设置 OK表示所有值都被设置了,失败返回零表示没有任何值被设置

mset key1 lijie1 key2 lijie2
msetnx跟setnx类似

getset 设置key的值并且返回key的旧值

getrange获取子字符串(前6个字符)

getrange email 0 5

incr/decr 递增/递减(步长为1)

incr key1

incrby/decrby 已指定的步长递增或递减,key不存在时设置key,并认为原来的value为0

incrby key1 6

incrby key1 -6

append 给指定key的value追加字符串,返回新字符串长度

strlen 查看key的value长度

二、hash类型(映射表,特别适用于存储对象)
hset user:001 name lijie

hget user:001 name

hsetnx user:001 name lijie

hmset 同时设置hash的多个字段

hmset user:002 name lijie age 20 sex 1

hincrby user:003 age 5

hexists判断hash表里某个字段是否存在

hlen代表hash表里所有字段的数量

hdel删除某个字段

hdel user:003 age

hkeys返回hash表的所有field

hvals返回hash表的所有value

同时返回hash表中的全部字段和值

hgetall user:003

三、list类型(链表)

lpush mylist "world"//在key对应的list头部添加元素

lpush mylist "hello"

lrange mylist 0 -1  //从头取到尾

rpush  向尾部压入元素

//在特定位置前后添加元素
linsert mylist before "world"  "middle" 

lset //将指定下标的元素替换掉

lset mylist 0 "change"

lrem //从list中删除n个和value相同的元素,返回删除掉的个数

n<0从尾部删除,n=0全部删除

lrem mylist 3 "one"

保留指定范围的元素,两端都删除
ltrim mylist 1 -1

lpop从头弹出一个元素

rpop从尾弹出一个元素

rpoplpush//从第一个list的尾部移除元素并添加到第二个list的头部

rpoplpush list5 list6

返回指定索引的元素
lindex mylist 0

llen 返回指定list的长度

四、set集合(无序集合,交集、并集、差集sns中好友推荐,共同好友)

添加元素

sadd myset hello

查看元素

smembers myset

删除集合中的某个元素

srem myset hello

spop随机弹出删除元素

spop myset

sdiff两个集合取差集

sdiff myset1 myset2

sdiffstore将返回的差集存到另一个集合里(myset3)

sdiffstore myset3 myset1 myset2 

sinter 返回两个集合的交集

sinterstore  将返回的交集存到另一个集合里

取并集

sunion myset1 myset2

取并集并且存储

sunionstore myset3 myset1 myset2

将一个集合中的元素移动到第二个集合

smove myset1 myset2 three

scard 查看集合中元素个数

scard myset

判断某元素是否为集合的元素

sismember myset one//判断one元素是不是集合myset中的元素

srandmember 随机返回集合中一个元素但不删除

五、sorted set(有序集合,可以理解为有两列的mysql表,加了个顺序字段)

zadd zset1 1 one

zadd zset1 2 two

zrange zset1 0 -1

zrange zset1 0 -1 withscores //带顺序号查看

zrem zset1 one//删除有序集合中元素

zincrby  zset1  2 two 对顺序号增加

zrank zset1 two//返回元素的索引值,升序排序

zrevrank zset1  two//返回元素的索引值,降序排序

zrevrange zset1 0 -1 withscores 

zrangebyscore zset1 2 4 withscores//返回score在给定区间的元素(2-4)

zcount zset1 2 4//返回集合中socre在给定区间的数量

zcard zset1 //返回集合中所有元素的个数

zremrangebyrank zset1 2 3//删除索引在指定区间的元素

zremrangebyscore zset1 2 5//删除顺序在指定区间的元素

六、redis常用命令

1.键值相关命令

keys * 返回所有键

exists key1 判断某个key是否存在

del key1 删除某键

expire key1 10  设置过期时间10s

ttl key1 获取key的有效时长,直到-1说明此值已过期

select 0 选择当前数据库(默认总共16个数据库)  

move key1 1 移动到1数据库

persist key1 移除指定key的过期时间

randomkey  随机返回一个key

rename key1 key_new 重命名

type 返回键的数据类型

2.服务器相关命令

直接输入ping 测试连接是否存活,连接正常返回PONG

quit 退出客户端

dbsize返回数据库中键的数量

info 获取redis服务器的信息

config get * 返回所有配置选项

flushdb 删除当前数据库中的所有key

flushall 删除所有数据库中的所有key

3.高级特性
(1) 安全性

requirepass  yuanhai//配置文件中设置密码

auth yuanhai 客户端输入密码进行连接或者客户端启动时 redis-cli -a yuanhai

(2)主从复制
只需在slave的配置文件中加入以下配置:

slaveof 192.168.1.1 6379 #指定master的ip和端口

masterauth yuanhai #这是master的密码

(3)事务处理

multi命令进入事务上下文,该命令后续的命令不会立即执行,而是先放到一个队列中,当执行exec时,redis会顺序执行队列中的所有命令

multi

set age 10 

set age 20 

exec

discard  //取消事务,事务回滚

redis乐观锁实例

watch key //监控某个键是否被修改过,如果修改过当前的事务不允许执行
相当于加了个乐观锁
exec discard unwatch 都会清除连接中的所有监视

(4)持久化机制
一、snapshotting 快照默认方式,存数据,默认文件名dump.rdb

save 900 1 #900秒内如果超过1个key被修改,则发起快照保存
save 300 10
save 60 10000
dbfilename dump.rdb
快照存在丢失数据的缺点

二、append-only  aof方式,存操作命令

appendonly yes//启用aof持久化方式
#fsync函数强制OS写入到磁盘的时机
appendfsync always//收到命令就立即写入磁盘,最慢,但是保证完全的持久化

appendfsync everysec//每秒钟写入磁盘一次,在性能和持久化方面做了很好的折衷

appendfsync no//完全依赖OS,性能最好,持久化没保证

(6)发布及订阅消息(解除耦合,可用于聊天系统)

subscribe tv1 tv2//订阅两个通道的消息

publish tv1 lijie//tv1发布消息

(7)虚拟内存(vm)

vm-enabled yes #开启vm功能

vm-swap-file /tmp/redis.swap #交换出来的value保存的文件路径

vm-max-memory 100000 #redis使用的最大内存上限

vm-page-size 32 #每个页面的大小32字节

vm-pages 134217728  #最多使用多少页面

vm-max-threads 4 #用于执行value对象换入的工作线程数量

参考文章:

redis多数据库:databases 设置数据库个数

http://www.ttlsa.com/redis/redis-database/

 

redis安装

http://www.open-open.com/lib/view/open1426468117367.html

redis配置文件解析

http://www.cnblogs.com/huangjacky/p/3700473.html

http://www.2cto.com/database/201307/225113.html

 

jedis代码操作;

http://my.oschina.net/lilw/blog/169635

http://www.cnblogs.com/liuling/p/2014-4-19-04.html

redis集群搭建

http://www.redis.cn/topics/cluster-tutorial.html

  

redis客户端缓冲区和主从复制

http://blog.csdn.net/jiangguilong2000/article/details/38436941

 

本文出自 “点滴积累” 博客,请务必保留此出处http://tianxingzhe.blog.51cto.com/3390077/1692231

时间: 2024-08-29 05:29:14

redis 安装和配置的相关文章

redis安装、配置、使用和redis php扩展安装教程_数据库其它

redis是一个内存数据库,比memcache支持更丰富的value类型,新浪微博就使用redis来做缓存. redis的源码安装 复制代码 代码如下: wget http://download.redis.io/redis-stable.tar.gztar -zxvf redis-stable.tar.gzcd redis-stablemakemake testmake install 1.make时可能会报如下错误: 复制代码 代码如下: zmalloc.o: In function `zm

linux下如何安装配置redis及主从配置

redis的优点:支持主从备份,操作指令丰富,支持异步的数据持久化 将 redis 安装到 /usr/local/webserver/redis 1.下载安装包 wget http://redis.googlecode.com/files/redis-2.2.15.tar.gz tar zxvf redis-2.2.15.tar.gz cd redis-2.2.15 make mkdir -p /usr/local/webserver/redis/conf mkdir -p /usr/local

c#连接Redis缓存数据库与Redis的安装与配置

  Redis是一个不错的缓存数据库,读取数据速度效率都很不错.今天大家共同研究下redis的用法.结合网上的资料和自己的摸索,先来看下安装与配置把. 咱们主要看在WINDOWS上怎样使用REDIS数据库. 下载地址:https://github.com/dmajkic/redis/downloads 1. 选择一个版本进行下载,压缩包中包括32位和64位的安装工具.我们这里使用32位的. 下载解压后的文件如下图: 3.打开服务器端 通过CMD命令行打开服务器端,首先通过命令行转到d:redis

linux安装和配置 mysql、redis 过程中遇到的问题记录(转)

章节目录 mysql redis linux下部署mysql和redis网上的教程很多,这里记录一下我部署.配置的过程中遇到的一些问题和解决办法. mysql ①安装完成后启动的时候报错 Starting MySQL.The server quit without updating PID file 干掉/etc/my.cnf 就好了 原因是: mysql_safe 下指定的  /var/run/mariadb 和 /var/log/mariadb 不存在 也可以选择新建这两个目录   ②安装好

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

Linux下Redis安装配置教程_Redis

redis作为NoSQL数据库的一种应用,响应速度和命中率上还是比较高效的.项目中需要用集中式可横向扩展的缓存框架,做了一点调研,即便redis.memcached存在效率上的差异(具体比较参考http://timyang.net/data/mcdb-tt-redis/),但其实都能满足目前项目的需求:但是redis还是比较风骚的,支持链表和集合操作,支持正则表达式查找key,目前项目缓存的结果大多是链表,如果链表新增或者修改数据的话,redis就体现出了极大的优势(memcached只能重新加

CentOS下Redis数据库的基本安装与配置教程_Redis

Redis 是一个开源的多平台数据存储软件,使用 ANSI C 编写,直接在内存使用数据集,这使得它得以实现非常高的效率.Redis 支持多种编程语言,包括 Lua, C, Java, Python, Perl, PHP 和其他很多语言.redis 的代码量很小,只有约3万行,它只做"很少"的事,但是做的很好.尽管是在内存里工作,但是数据持久化的保存还是有的,而redis 的可靠性就很高,同时也支持集群,这些可以很好的保证你的数据安全. 构建 Redisredis 目前没有官方 RPM

CentOS系统下Redis安装和自启动配置的步骤_Redis

一. 安装Redis Redis的安装其实相当简单,推荐的方式是下载redis的源码,并在本机编译后安装. 首次进入主文件夹的下载目录下,执行wget下载源码 [zhxilin@localhost ~]$ cd 下载 [zhxilin@localhost 下载]$ wget http://download.redis.io/redis-stable.tar.gz 接下来解压之后,移动到/usr/redis目录下 [zhxilin@localhost 下载]$ tar -zxvf redis-st

Ubuntu 下安装及配置php redis扩展

php redis最新版安装 安装redis服务  代码如下 复制代码     sudo apt-get install redis-server php5-dev build-essential xsltproc     redis-server:安装redis服务     php5-dev:用来动态编译模块,若不安装,后面可能会找不到phpize 完装完成redis服务后,你可以通过如下命令来测试redis-server是否安装成功:  代码如下 复制代码     redis-cli