Redis详解

Redis安装配置

下载地址http://redis.io/download 安装步骤:
1 首先需要安装gcc,把下载好的redis-3.0.0-rc2.tar.gz 放到linux /usr/local文件夹下
2 进行解压 tar -zxvf redis-3.0.0-rc2.tar.gz
3 进入到redis-3.0.0目录下,进行编译 make
4 进入到src下进行安装 make install  验证(ll查看src下的目录,有redis-server 、redis-cil即可)
5 建立俩个文件夹存放redis命令和配置文件
mkdir -p /usr/local/redis/etc
mkdir -p /usr/local/redis/bin
6 把redis-3.0.0下的redis.conf 移动到/usr/local/redis/etc下,  
   cp redis.conf /usr/local/redis/etc/
7 把redis-3.0.0/src里的mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-check-dump、redis-cli、redis-server 
文件移动到bin下,命令:
mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server /usr/local/redis/bin
8 启动时并指定配置文件:./redis-server /usr/local/redis/etc/redis.conf(注意要使用后台启动,所以修改redis.conf里的 daemonize 改为yes)
9 验证启动是否成功: ps -ef | grep redis 查看是否有redis服务 或者 查看端口:netstat -tunpl | grep 6379
进入redis客户端 ./redis-cli 退出客户端quit 退出redis服务: 
(1)pkill redis-server 、
(2)kill 进程号、                             
(3)/usr/local/redis/bin/redis-cli shutdown 

一、String

1、查看Redis中的数据

key *

2、添加数据

set key value

(1) 当Redis里面没有对应的key就创建

setnx key value

(2) 设置过期时间,单位秒

setex key time value 

(3) //批量设置值

mset key1 value1 key2 value2 key3 vlaue3

3、setrange 替换字符串

setrange key index value //从索引index处替换值为value

3、取数据

(1) get key

(2)

mget key1 key2 key3 //批量获取值

4、 //对一个值进行自增自减的操作

incr 和 desr

(1) //对一个key的值自增1

incr key 

(2) 对一个key指定长度的自增/自减

 incrby key value 

5、追加字符串,在key的值后面追加了value值

append key value 

6、查看字符串key的长度

strlen key 

二、Hash(hash集合)

hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。Redis 中每个 hash 可以存储 2^32 - 1 键值对(40多亿)。

1、 //创建一个myhash的hash集合名字是field1 值为hell

 hset myhash field1 hell

2、//获取myhash中的值

hget myhash field1 

3、批量设置多个值

hmset 

4、 //是否存在,不存在则返回0

hexists 

5、//返回hash集合里的所有键数值

hlen 

6、//删除指定hash的field

hdel 

7、//返回hash里所有字段

hkeys 

8、//返回hash的所有value

hvals 

9、//返回hash里所有的key和value

hgettall 

 

三、list(类似于Java里的queue)

Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。一个列表最多可以包含 2^32 - 1 个元素 (4294967295, 每个列表超过40亿个元素)。

1、//从头部加入元素(栈)先进后出

lpush 

例如:

lpush list1 "hello" lpush list1 "world"

 

lrange list1 0-1 //表示从头去到末尾

2、//从尾部加入元素(队列)先进后出

rpush 

例如:

rpush list2 "beijing" rpush list2 "hyn"

lrange list2 0-1

3、linsert //插入元素

例如:

linsert list3 before [几何的元素] [插入的元素]

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

lset 

5、//删除元素,返回删除个数

lrem 

6、//保留指定key 的值范围内的数据

ltrim 

7、//从list的头部删除元素,并返回删除元素

lpop 

8、//从list尾部删除元素,并返回删除元素

rpop 

9、//第一步从尾部删除元素,然后第二步从头部加入元素

rpoprpush 

10、//返回名称为key 的list的list中index位置的元素

lindex 

11、//返回元素的个数

llen 

四、set和zset

set集合是一个string类型(无序集合),不能有重复

1、//向名称为key的set中添加元素

sadd 

例如:

sadd set1 aaa

2、//查看set中的元素

smembers 

3、//返回set中的交集

sinter 

4、//返回set中的交集,并存入另一个set中

sinterstroe 

例如:

//返回set1 和set2 的交集,并存入set3中

sinterstroe set3 set1 set2 

5、//取并集,存入set3中(用法同上)

sunion 

6、//从一个set集合移动到另一个set集合中

smove 

例如:

smove set1 set2 a

7、//查看集合里元素个数

scard 

8、//判断某元素是否为集合中的元素

sismember 

9、//随机返回一个元素

srandmember 

zset集合(有顺序)

1、//想有序集合中添加一个元素,改元素如果存在,则跟新顺序

zadd 

例如:

zadd zset1 5 five //将five添加进去,排在第5个位置

2、//查看zset中的全部元素,并显示位置标号

zrange zset1 0 -1 withscores 

3、//删除名称为key 的zset中的元素member

zrem 

4、//以指定值去自动递增或者减少,用法和之前incrby类似

zincrby 

5、//找到指定区间范围的数据进行返回

zrangebyscore 

6、//删除1到到1(只删除索引1)

zremrangebyrank 

7、//删除指定序号

zremrangebyscore 

五、Redis中的一些高级命令

1、//可以模糊匹配

keys * 

例如:

keys *4 //匹配以4结尾的内容

2、//设置某个key 的活期时间,使用ttl查看剩余时间

expire 

例如:

expire name 5 //设置name的变量过期时间5秒

3、//查看过期剩余的时间

ttl 

4、//取消过期时间的设置

persist 

5、//选择数据库 数据库为0~15(一共16个数据库) 默认进入的是0数据库

select 2        //选择下标为2的数据库

6、 //将当前的数据库key转移到其他数据库中

move [key] [数据库下标]

7、//随机返回数据库的一个key

randomkey 

8、//重命名key

rename 

9、//打印命令

echo 

10、//查看数据库的key数量

dbsize 

11、 //获取数据库信息

info

12、 //实时传存收到的请求(返回相关的配置信息)

config get

13、//返回所有的配置

config get * 

14、清空当前数据库,

flushdb 

//清空全部数据库

flushall

六、Redis中的安全设置

1、vi命令编辑redis.conf文件,修改下面配置

#requirespass foobared

requirepass [你的密码]

2、重启服务器

pkill redis-server

3、

auth [你的密码] //查看redis的数据

七、Redis的主从复制

1、master可以拥有多个slave

2、多个slave可以连接同一个master外,还可以连接其他的slave

3、主从复制不会阻塞master在同步数据时 master可以继续处理client请求

4、提供系统的伸缩性

主从复制的过程:

1、slave 与master建立连接,发送sync同步命令

2、master会开启一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存

3、后台完成保存后,就将文件发送给slave

4、slave将此文件保存到硬盘上

主从复制的配置:

clone 服务器之后修改slave的IP的地址

修改配置文件: /usr/local/redis/etc/redis.conf

第一步:slaveof <masterip> <masterport>

第二步:masterauth <master-password>

使用info查看role 角色即可知道是主服务或从服务

八、Redis持久化

在工作中用到是第一种方案的appendfsync always,确保数据的不丢失。

九、Redis中的发布订阅模式

1、使用sbuscribe [频道] 进行订阅监听

sbuscribe cctv

2、使用publish [频道] [发布内容] 进行发布消息广播

publish cctv 'hello'

十、Redis的集群和搭建

Redis的集群搭建至少需要3个master(6个节点:3个master和3个slave)

1、:创建一个文件夹redis-cluster,然后在其下面创建6个文件夹

(1)

mkdir -p /usr/local/redis-cluster

(2)mkdir 7001 、mkdir 7002、mkdir 7003、mkdir 7003、mkdir 7004、mkdir 7005、mkdir 7006、

2、把之前的redis.conf配置文件分别cope到700*目录下,进行修改各个文件内容,也就是对700*下的每个cope的redis.conf文件进行修改!如下:

(1)

daemonize yes

(2)分别对每个机器的端口号进行设置

port 700* 

(3)(必须要绑定当前机器IP,不然会无限悲剧下去哇..深坑勿入!!!)

bind 192.168.1.171 

(4)(指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据,深坑勿入!!!)

dir /usr/local/redis-cluster/700*/ 

(5)(启动集群模式,开始^_^)

cluster-enable yes 

(6)(这里700x最好和port对应上)

cluster-config-file nodes700*.conf 

(7)

cluster-node-timeout 5000

(8)

appendonly yes

3、

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值