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
签名:删除冗余的代码最开心,找不到删除的代码最痛苦!