Redis 运用

前言

本文主要包含以下三个方面的内容:Redis安装及配置、Redis基本操作、小结

一、Redis安装及配置

(1)环境

OS : CentOS 6.5     官网下载对应版本: http://www.centoscn.com/CentosSoft/iso/

Redis: Redis 3.0.3   官网下载对应版本: http://redis.io/download

(2)安装步骤

安装CentOS 6.5 的过程省略。默认为已经有CentOS 6.5 的操作环境,安装Redis 的步骤如下

1> 下载Redis 稳定版本

wget http://download.redis.io/redis-stable.tar.gz

2> 解压

tar xvzf redis-stable.tar.gz

    3> 进入redis-stable 文件夹

cd redis-stable

    4> 开始编译redis

make

   5> 进入到src文件夹

cd src

  6> 安装redis

make install

  7>测试redis

make test

  8>运行时如果出错,大概是tcl版本太低的原因的话请按照下面的步骤运行,然后再运行 make test 命令。最终会显示运行成功!

wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
sudo tar xzvf tcl8.6.1-src.tar.gz  -C /usr/local/
cd  /usr/local/tcl8.6.1/unix/
sudo ./configure
sudo make
sudo make install

9>安装完毕之后,运行如下命令,就可以启动Redis了

redis-server

  10> redis启动之后,运行客户端命令就可以连接到redis上

redis-cli

  11>连接到redis之后可以运行如下的命令对数据进行增删改查

add  key test       /*  add data  */
get key             /*  get data  */
del key             /*  del data  */

(3)配置说明

在文件夹redis-stable中找到 redis.conf文件,就可以对redis进行相关配置了,可以根据自己的需要进行相关的配置。

比如需要添加密码,则在redis.conf文件中 有“#requirepass ”去掉“#” ,然后再关键字requirepass 后添加密码。

二、Redis对数据的操作

对redis的操作可以通过不同的方式进行,比如直接通过命令行的方式对数据进行操作、通过不同语言作为客户端对其实现操作数据。本文以Java为例来实现对redis数据的增删改查。使用了第三方库

package com.cx.redis;

import java.util.Set;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * @description :
 *
 * @author : WuBo
 *
 * @date   : 2015年8月4日
 *
 */
public class RedisUtil {

	private static JedisPool pool = null;

	/**
	 * @desc 获取连接池
	 * @return
	 */
	public static JedisPool getPool() {
        if (pool == null) {
            JedisPoolConfig config = new JedisPoolConfig();
            //config.setMaxIdle(5);
            config.setMaxTotal(1000);//最大连接数
            //config.setMaxWaitMillis(1000 * 100);
            config.setTestOnBorrow(true); //测试连接是否可用
            pool = new JedisPool(config, "192.168.1.100", 6379,1000 * 100,"xxxx123");
        }
        return pool;
    }

	/**
	 * @desc 释放连接
	 * @return
	 */
	 public static void returnResource(JedisPool pool, Jedis redis) {
	        if (redis != null) {
	            pool.returnResourceObject(redis);
	        }
	 }

	    /**
		 * @desc 获取值
		 * @return
		 */
	 public static String get(String key){
	        String value = null;
	        JedisPool pool = null;
	        Jedis jedis = null;
	        try {
	            pool = getPool();
	            jedis = pool.getResource();
	            value = jedis.get(key);
	        } catch (Exception e) {
	            //释放redis对象
	            pool.returnBrokenResource(jedis);
	            e.printStackTrace();
	        } finally {
	            //返还到连接池
	            returnResource(pool, jedis);
	        }
	        return value;
	    }

	 /**
		 * @desc 随机获取制定set中的元素
		 * @param key
		 * @return
	*/
	 public static String getRandEleOfSet(String key){
			String value = null;
	        JedisPool pool = null;
	        Jedis jedis = null;
	        try {
	            pool = getPool();
	            jedis = pool.getResource();
	            value = jedis.srandmember(key);
	        } catch (Exception e) {
	            //释放redis对象
	            pool.returnBrokenResource(jedis);
	            e.printStackTrace();
	        } finally {
	            //返还到连接池
	            returnResource(pool, jedis);
	        }
	        return value;
	 }

	 /**
		 * @desc 随机获取制定set中的所有元素
		 * @param key
		 * @return
	*/
	 public static Set<String> getAllEleOfSet(String key){
		    Set<String> value = null;
	        JedisPool pool = null;
	        Jedis jedis = null;
	        try {
	            pool = getPool();
	            jedis = pool.getResource();
	            value = jedis.smembers(key);
	        } catch (Exception e) {
	            //释放redis对象
	            pool.returnBrokenResource(jedis);
	            e.printStackTrace();
	        } finally {
	            //返还到连接池
	            returnResource(pool, jedis);
	        }
	        return value;
	 }

	  //清空缓存数据
	  public static void clearCache(String key){
	    	    JedisPool pool = null;
		        Jedis jedis = null;
		        try {
		            pool = getPool();
		            jedis = pool.getResource();
		            jedis.del(key);
		        } catch (Exception e) {
		            //释放redis对象
		            pool.returnBrokenResource(jedis);
		            e.printStackTrace();
		        } finally {
		            //返还到连接池
		            returnResource(pool, jedis);
		        }
	    }

	  /**
		 * @desc: 添加一个SET集合
		 */
		public static void addElementToSet(String key,String... element){
			JedisPool pool = null;
	        Jedis jedis = null;
	        try {
	            pool = getPool();
	            jedis = pool.getResource();
	            jedis.sadd(key, element);
	        } catch (Exception e) {
	            //释放redis对象
	            pool.returnBrokenResource(jedis);
	            e.printStackTrace();
	        } finally {
	            //返还到连接池
	            returnResource(pool, jedis);
	        }
		}

	   /**
		 * @desc 获取redis连接
		 * @return
	   */
	 public static Jedis getJedis(){
		 Jedis jedis = null;
		 try{
			 jedis = getPool().getResource();
		 }catch(Exception e){
			 pool.returnBrokenResource(jedis);
			 e.printStackTrace();
		 }
		 return jedis;
	 }

}

  

三、小结

本文对Redis的安装、配置、以及相关运用做了一个简单总结作为自己的一个记录吧。

时间: 2024-11-03 21:47:52

Redis 运用的相关文章

Redis+keepalived实现双机热备

一. 简介 安装使用centos 5.6(64) Master 192.168.2.235 Slave 192.168.2.236 Vip 192.168.2.200 编译环境 yum -y install gcc gcc+ gcc-c++ openssl openssl-devel pcre pcre-devel 当 Master 与 Slave 均运作正常时, Master负责服务,Slave负责Standby: 当 Master 挂掉,Slave 正常时, Slave接管服务,同时关闭主从

Python操作数据库(mysql redis)

一.python操作mysql数据库: 数据库信息:(例如211.149.218.16   szz  123456) 操作mysql用pymysql模块 #操作其他数据库,就安装相应的模块 import  pymysql ip='211.149.218.16' port=3306 passwd='123456' user='root' db='szz' conn=pymysql.connect(host=ip,user=user,port=port,passwd=passwd,db=db,cha

Redis在Linux中安装使用

一.安装$ wget http://download.redis.io/releases/redis-x.x.x.tar.gz $ tar xzf redis-x.x.x.tar.gz $ cd redis-x.x.x $ make sudo cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-check-rdb redis-trib.rb redis-sentinel redis-server /usr/loca

redis 学习 四 队列

<?php /** * redis实战 * * 利用列表list实现简单队列 * * @example php cache.php */ header('content-type:text/html;chaeset=utf-8'); $redis = new \Redis(); $redis->connect('127.0.0.1', 6379); // 进队列 $userId = mt_rand(000000, 999999); $redis->rpush('QUEUE_NAME',j

Redis实战(三)Redis主从复制

从架构 1.主从架构图 2.通过命令 mkdir redisCluster创建redis集群文件夹 3.通过命令mkdir 6380   mkdir 6381   mkdir 6382在redisCluster文件夹下创建三个文件夹 4.通过以下命令将redis.conf分别拷贝到6380.6381. 6382文件夹下 cp /usr/local/redis/redis-3.0.2/redis.conf  ./6380 cp /usr/local/redis/redis-3.0.2/redis.

Redis Cluster集群部署搭建

在Oracle的路上走了许多年,换换感觉,尝试一下新的知识,也是一个不错的感觉.Redis,一个超轻量化的内存数据库,只做一小块数据库功能实现,却非常优秀的一个产品.今天,就分享一下安装Redis集群的过程. 搭建redis集群,建议至少需要准备3台服务器,共搭建6个节点,3个master,3个slave,并且要求3个master节点不能全部跑到同一台服务器上,保证节点安全,3台服务器的配置相同,使用redistest账号搭建,对应的端口是7000/7001/7002端口 我的集群分配如下,每个

redis的单机安装与配置以及生产环境启动方案

简单介绍一下redis的单机安装与配置,方便自己记录安装步骤的同时方便他人获取知识. 首先,从官网下载最新版的(稳定版)的redis安装包.官网地址如下:https://redis.io/download 下载源码包后,redis需要编译安装.需要安装gcc和tcl,gcc用于编译tcl用于测试. 使用命令安装gcc,yum install gcc,一路选择yes,gcc就可以安装成功. 接下来安装tcl,首先获取tcl源码包(见百度云盘)或者使用命令:wget http://downloads

Redis学习之Sort Set详解

本文和大家分享的主要是Redis中Sort Set相关内容,一起来看看吧,希望对大家学习redis有所帮助. 游戏服务器需要做一个排行榜实时更新,如果沿用传统的方法,一般是通过后端的定时任务去跑数据来生成排行榜数据,这种方法一方面无法满足产品对功能实时性的要求,另一方面也一定程度上消耗服务器端有限的资源.如果从每次数据库读取数据并进行排名(使用Mysql的sort关键字进行排序),在关卡数据量的级数大时是一种效率低的方法.在查阅大量资料后,发现了Redis中的有序集合(Sort Set). Re

redis 集群

redis 集群 redis集群是redis提供分布式数据库方案, 集群通过分片(Sharding)来进行数据共享,并提供复制和故障转移功能. 节点 redis集群通常由多个节点(node)组成,在开始每个node 都是相互独立的. 要组建成真正可工作的集群,我们必须将各个独立的节点连接起来,构成一个包含多个节点的集群. 命令 cluster meet <ip> <port> 向一个node 发送命令 cluster meet,让节点与ip/port所指定的节点 进行握手(hand

常见redis.conf解析

参数说明redis.conf 配置项说明如下:1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程daemonize no2. 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定pidfile /var/run/redis.pid3. 指定Redis监听端口,默认端口为6379,作者在自己的一篇博文中解释了为什么选用6379作为默认端口,因为6379在手机按键上MERZ对应的号码