redis 非关系型数据库,内存型数据库,现在大家都不陌生了,无论大中小型企业,都会将redis应用到自己的项目中,以此来减轻数据库的压力
安装步骤:
1.安装gcc
安装c语言的编译环境
yum install gcc-c++
2.解压缩并且编译
wget http://download.redis.io/releases/redis-3.2.6.tar.gz
tar -zxvf redis-3.2.6
//进入解压缩后的目录执行
make
// 将编译后的文件放入/usr/local/redis 下,自己定义
make install PREFIX=/usr/local/redis
3.进行redis 后端启动,使用redis-conf 配置文件
//进入解压缩redis 目录将redis.conf 配置文件 copy 到 make install 后的目录
cp redis.conf /usr/local/redis/bin
//编辑 redis.conf
vim redis.conf
修改内容 :将no 改为 yes ,意思就是可以后台启动,不占用前台的端口
4.启动 redis
./redis-server redis.conf
5.检查是否启动成功
ps aux|grep redis
6,使用客户端连接
./redis-cli
//连接其他客户端的redis
./redis-cli -h 192.168.241.129 -p 6379
ok ,单台的redis 我们已经配置好了,那么在企业中,redis 集群改怎么搭建呢?
-------redis 集群搭建,至少需要3个redis 主节点,我们这里搭建伪分布式-------
1.创建一个集群的文件夹,用于存放我们集群的reids bin文件
//创建集群的文件夹,用来存放我们的redis 集群
mkdir redisCluster
//将 make install 后的redis 文件复制到redisCluster 中先复制一份
cp -r /usr/local/redis/bin /user/local/redisCluster/redis01
//修改其IP 端口号(不重复),以及打开cluster-enabled,如下图
修改端口
将集群模式打开,将cluster-enabled 的注释去掉
2,然后复制5份就行我们修改每一份的端口就可以了
cp -r redis01/ redis02
3.启动这六个redis 节点
4.开始安装集群: 需要ruby脚本的运行环境以及redis.gem,直接将红色部分复制运行就好
//需要安装ruby 脚本编译 yum install ruby yum install rubygems //手工下载redis.gem wget --no-check-certificate https://rubygems.global.ssl.fastly.net/gems/redis-3.2.1.gem //编译 gem install -l ./redis-3.2.1.gem
5.找到redis 解压目录下的src目录 redis-trib.rb 文件
//复制到我们的redis集群中
cp redis-trib.rb /usr/local/redisCluster/
6.运行 redis-trib.rb 脚本:红的部分需要修改为自己设置的6个节点的ip与端口
./redis-trib.rb create --replicas 1 127.0.0.1:9001 127.0.0.1:9002 127.0.0.1:9003 127.0.0.1:9004 127.0.0.1:9005 127.0.0.1:9006
7.集群客户端测试-->连接必须带 -c
//必须指明端口和 -c
redis01/redis-cli -p 9002 -c
java jedis 测试连接单机版与集群版reids 测试方法
/** * 单机版测试 */ @Test public void jedisSign() { JedisPool jedisPool =new JedisPool("127.0.0.1",6379); //从连接池中获取连接 Jedis jedis=jedisPool.getResource(); System.out.print(jedis.ping()); jedis.set("bba", "sss"); jedis.close(); } /** * 连接集群版redis测试 * @throws IOException */ @Test public void jedisCluster() throws IOException { //jedisCluster连接集群 //所有的集群节点都放在了HostAndPort 对象中 Set<HostAndPort> pool =new HashSet<>();
pool.add(new HostAndPort("192.168.241.129",9001) ); pool.add(new HostAndPort("192.168.241.129",9002) ); pool.add(new HostAndPort("192.168.241.129",9003) ); pool.add(new HostAndPort("192.168.241.129",9004) ); pool.add(new HostAndPort("192.168.241.129",9005) ); pool.add(new HostAndPort("192.168.241.129",9006) ); JedisCluster jedisCluster =new JedisCluster(pool); jedisCluster.set("testcluster", "jediscluster"); System.out.println(jedisCluster.get("testcluster")); jedisCluster.close(); }
Redis数据类型
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。有意思的是redis的string包含所有二进制数据,包括图片等。String一个键最大存储512MB 数据
数据类型 | 获取 | 设置 |
String | Get | Set |
Hash | Hgetall | Hmset |
List | Lrange | Lpush |
Set | Smembers | Sadd |
zset | Zrangebyscore | Zadd |
常用的就是String 与Hash 这两种数据类型