Reds关键技术分析及应用

9 篇文章 5 订阅 ¥9.90 ¥99.00
  1. Redis的安装和配置
    Redis是一款开源,免费, 高性能的key-value数据库,与Memcached类似(简单地比较Redis与Memcached的区别
    1 Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
    2 Redis支持数据的备份,即master-slave模式的数据备份。
    3 Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。)
    Linux下安装运行:
    下载:http://download.redis.io/releases/redis-3.2.8.tar.gz
$ tar xzf redis-3.2.8.tar.gz
$ cd redis-3.2.8
$ make
$ src/redis-server
$ src/redis-cli
  1. Redis基本命令
    配置命令:
    语法:
    127.0.0.1:6379> config get CONFIG_SETTING_NAME
    127.0.0.1:6379> config set CONFIG_SETTING_NAME NEW_CONFIG_VALUE
    举例:
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "123456"
127.0.0.1:6379> config set requirepass "123456789"
OK

键命令:用于管理Redis的键
字符串命令:用于管理Redis字符串类型值
语法:
127.0.0.1:6379> command KEY_NAME
举例:

127.0.0.1:6379> set name xiaoming
127.0.0.1:6379> get name
127.0.0.1:6379> keys *      #查询所有的key
127.0.0.1:6379> expire name 60    #设置有效期为60秒,如果没有设置有效期时,永久有效。
127.0.0.1:6379> ttl name     #查看某个键剩余有效期。如果永久有效则值为-1,如果失效不存在,则值为-2
127.0.0.1:6379> exists name     #查看某个键是否存在 0表示不存在,1表示存在
127.0.0.1:6379> del name    #删除某个键
  1. 在Java中使用Redis
    a) Jedis是Redis官方首选的Java客户端开发包
    b) 需要在程序中添加Jedis依赖:
<dependency>
<groupId>redis.clients</ groupId>
<artifactId>jedis</ artifactId>
<version>2.1.0</version>
</dependency>

c) 连接到Redis服务:

public static void main(String[] args){
   //连接到本地的Redis服务
   Jedis jedis = new Jedis(“localhost”);
   //查看服务是否在运行
   System.out.println(“Server is running:”+jedis.ping());
   jedis.set(“foo”,”bar”);
   String value = jedis.get(“foo”);
}

d) 程序中提供RedisAPI接口

public class RedisAPI{
  public JedisPool jedisPool;//使用连接池技术,通过spring进行注入实例
  public JedisPool getJedisPool(){
    return jedisPool;
}
public void setJedisPool(){
    this.jedisPool=jedisPool;
}
//get
public String get(String key){
  Jedis jedis = jedisPool.getResource();
  String value = jedis.get(key);
  jedis.returnResource(jedis);//归还连接池
  return value;
}
//set
public String set(String key,String value){
  Jedis jedis = jedisPool.getResource();
  String result = jedis.set(key,value); //返回值:状态码
  jedis.returnResource(jedis);//归还连接池
  return result;
}
//这个方法可以设置有效期
public String set(String key,int seconds,String value){
  Jedis jedis = jedisPool.getResource();
  String result = jedis.setex(key,seconds,value); //设置有效期
  jedis.returnResource(jedis);
  return result;
}

//exists
public boolean exists(String key){
    Jedis jedis = jedisPool.getResource();
  Boolean result = jedis. exists (key); //设置有效期
  jedis.returnResource(jedis);
  return result;
}

//ttl
public long ttl(String key){
    Jedis jedis = jedisPool.getResource();
  Long result = jedis. ttl (key); 
  jedis.returnResource(jedis);
  return result;
}
//del
public long del(String key){
    Jedis jedis = jedisPool.getResource();
  Long result = jedis. del (key); #返回的是删除key的个数
  jedis.returnResource(jedis);
  return result;
}
}

e) 在spring配置文件中注入JedisPool实例

<!--redis 配置 开始-->
	<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
		<property  name="maxActive"  value="${redis.maxActive}" />
		<property  name="maxIdle"   value="${redis.maxIdle}" />
		<property  name="maxWait"  value="${redis.maxWait}" />
		<property  name="testOnBorrow"  value="true" />
	</bean>
	<!-- Config poolConfig, String host, int port, int timeout, String password, int database-->
	<bean id="jedisPool" class="redis.clients.jedis.JedisPool" destroy-method="destroy" >
		<constructor-arg ref="jedisPoolConfig"/>
		<constructor-arg value="${redis.host}"/>
		<constructor-arg value="${redis.port}"/>
		<constructor-arg value="${redis.timeout}"/>
		<constructor-arg value="${redis.pass}"/>
		<constructor-arg value="${redis.default.db}"/>
	</bean>
	<bean id="redisAPI" class="cn.itrip.common.RedisAPI">
		<property name="jedisPool" ref="jedisPool"/>
	</bean>

	<bean id="validationToken" class="cn.itrip.common.ValidationToken">
		<property name="redisAPI" ref="redisAPI" />
	</bean>

f) 在database.properties文件中添加如下内容:

#redis
redis.host=127.0.0.1
redis.port=6379
redis.pass=redis@WSX!QAZ1234
redis.default.db=0
redis.timeout=3000
redis.maxActive=300
redis.maxIdle=100
redis.maxWait=1000

g) 添加测试类:

ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
RedisAPI api= (RedisAPI)ctx.getBean("redisAPI");
        api.set("id","100");
        bool``ean bool = api.exist("id");
        String v = api.get("id");
        long sec = api.ttl("id");
            System.out.println("bool:"+bool+",v:"+v+",sec:"+sec);

h)redis默认本地访问,要远程访问作如下配置:打开redis.conf
1)将bind参数设置为:0.0.0.0
2)启动时指定:src/redis-server redis.conf
3)可以通过 命令:ps -ef|grep redis查看redis绑定到了哪一个ip
root 8526 8080 0 21:08 pts/2 00:00:00 src/redis-server 0.0.0.0:6379
4)启动客户端命令:src/redis-cli –h 192.168.70.133
5) 关闭防火墙
i)安装Redis图形化界面 Redis Desktop Manager

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值