redis使用

Redis是一种开源的内存数据库,也可以用来做缓存、消息订阅。它支持5种基本数据类型(String, List, Hash, Set, Sorted Set)。Redis内置复制以及持久化方案,通过Sentinel以及集群提供高可用方案。

1,下载

有两种方式:

直接下载编译好安装程序 :https://github.com/MicrosoftArchive/redis/releases,当前下载到为:Redis-x64-3.2.100.msi
下载源码编译: https://github.com/MicrosoftArchive/redis

2,配置

安装程序可以把Redis安装成服务,3.2 之后有些新特性,需要设置,否则跨机器会连接不上。

安装目录下有两个配置文件,分别对应不同的运行方式
redis.windows.conf
redis.windows-service.conf

1)打开配置文件把下面对应的注释掉
# bind 127.0.0.1
2)保护模式
protected-mode no

如果需要配置密码访问,则把上面修改成

protected-mode yes
requirepass xxxxxxx

3)Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程,设置为no

daemonize no --可以不修改

4)linux安装及启动

$ wget http://download.redis.io/releases/redis-5.0.6.tar.gz
$ tar xzf redis-5.0.6.tar.gz
$ cd redis-5.0.6
$ make

上面编译成功后,修改redis.conf文件参数(端口,访问密码,是否后台运行)

src/redis-server redis.conf

 

基本类型介绍

  Redis的key是字符安全的(也就是没有转义)

  String:len返回的长度是字节的长度,可以对string类型的值进行数字计算

  List:  是一个双向链表,用它可以实现对列(queen), Stack

  Set: 存储的无序集合,可以用来做抽奖之类的

  Sorted Set:有序的集合

  Hash: 最适合存储对象

  bitmap: 按位存储,只能存0与1,支持多个bitmap做布尔运算,可以用来做登日志记录

 

3,使用

引入jedis-2.9.0.jar, commons-pool2.jar包

<dependency> 
    <groupId>org.apache.commons</groupId> 
    <artifactId>commons-pool2</artifactId> 
    <version>2.4.2</version> 
</dependency>

3.1 不用连接沲的用法

<bean id="Jedis" class="redis.clients.jedis.Jedis">
    <constructor-arg value="xxxx.xxxx.xxxx.xxxx"></constructor-arg>
</bean>
@Autowired private Jedis jedis;
jedis.lpush(key, value);

3.2 用连接沲的用法

<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
    <property name="maxIdle" value="300"/> <!--最大能够保持idel状态的对象数-->
    <property name="maxTotal" value="60000"/><!--最大分配的对象数-->
    <property name="testOnBorrow" value="true"/><!--当调用borrow Oject方法时,是否进行有效性检查-->
</bean>

<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
    <constructor-arg index="0" ref="jedisPoolConfig"/>
    <constructor-arg index="1" value="xxxx.xxxx.xxxx.xxxx" type="String" />
    <constructor-arg index="2" value="6379" type="int"/>
</bean>
@Autowired private JedisPool jedisPool;
Jedis redis = jedisPool.getResource();    
String ID = redis.rpop(myBean.getCust_id());// 查询该机器中最早的一条指令
redis.close();

注意:要及时close以便释放资源。

 

4 监控运行状况

  在安装目录下双击redis-cli.exe,输入下列指令:

  info

  可以查看到连接数量,使用内存状况 

  client list

  列出连接列表,如果idle(以秒计算的空闲时长)很大,是空闲连接没有被及时释放掉从而导致connected_clients非常高

  config get timeout

  查看redis的配置timeout,如果为0,表示关闭该功能

  config set timeout 600

  设置timeout,单位为秒

5, 测试连接远程

redis-cli.exe -h 192.168.1.225 -p 6379

连接上之后就可以运行命令,如

set foo 100
get foo

 

简易教程:http://www.redis.net.cn/tutorial/3503.html

详情中文教程:http://www.redis.cn/

https://github.com/ifnu/spring-security-redis

https://projects.spring.io/spring-data-redis/#quick-start

 

posted @ 2018-03-28 19:07  Season2009  阅读(193)  评论(0编辑  收藏  举报