自带命令行客户端
命令格式
./redis-cli -h 127.0.0.1 -p 6379
修改redis配置文件(解决IP绑定问题)
# bind 127.0.0.1绑定的IP才能访问redis服务器,注释掉该配置
protected-mode yes 是否开启保护模式,由yes该为no
l 默认方式
如果不指定主机和端口也可以
./redis-cli
* 默认主机地址是127.0.0.1
* 默认端口是6379
连接超时解决
远程连接redis服务,需要关闭或者修改防火墙配置。
修改防火墙设置:
第一步:编辑iptables
vim /etc/sysconfig/iptables
在命令模式下,选定要复制的那一行的末尾,然后点击键盘yyp,就完成复制,然后修改
l 第二步:重启防火墙
service iptables restart iptables:清除防火墙规则: [确定] iptables:将链设置为政策 ACCEPT:filter [确定] iptables:正在卸载模块: [确定] iptables:应用防火墙规则: [确定]
多数据库支持
默认一共是16个数据库,每个数据库之间是相互隔离(但是可以使用flushall一次清空所有的库)。数据库的数量是在redis.conf中配置的。
切换数据库使用命令:select 数据库编号(0-15)
例如:select 1
程序客户端之Java客户端Jedis
Jedis介绍
Redis不仅使用命令客户端来操作,而且可以使用程序客户端操作。
现在基本上主流的语言都有客户端支持,比如Java、C、C#、C++、php、Node.js、Go等。
在官方网站里列一些Java的客户端,有Jedis、Redisson、Jredis、JDBC-Redis、等其中官方推荐使用Jedis和Redisson。
在企业中用的最多的就是Jedis,下面我们就重点学习下Jedis。
Jedis同样也是托管在github上,地址:https://github.com/xetorthio/jedis
添加jar包
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>
单实例连接
注意事项:需要去设置redis服务器的防火墙策略(临时关闭、永久关闭、端口暴露)
@Test public void testJedis() { //创建一个Jedis的连接 Jedis jedis = new Jedis("127.0.0.1", 6379); //执行redis命令 jedis.set("key1", "hello world"); //从redis中取值 String result = jedis.get("key1"); //打印结果 System.out.println(result); //关闭连接 jedis.close(); }
连接池连接
@Test public void testJedisPool() { //创建一连接池对象 JedisPool jedisPool = new JedisPool("127.0.0.1", 6379); //从连接池中获得连接 Jedis jedis = jedisPool.getResource(); String result = jedis.get("key1") ; System.out.println(result); //关闭连接 jedis.close(); //关闭连接池 jedisPool.close(); }
测试代码
@Test public void testJedisPool() { JedisPool pool = (JedisPool) applicationContext.getBean("jedisPool"); Jedis jedis = null; try { jedis = pool.getResource(); jedis.set("name", "lisi"); String name = jedis.get("name"); System.out.println(name); } catch (Exception ex) { ex.printStackTrace(); } finally { if (jedis != null) { // 关闭连接 jedis.close(); } } }
客户端操作Redis
redis是一个key-value的Nosql,我们能操作就只有String类型key以及各种类型value.但是一定要注意我们添加的一般都是字符串,只是会组织为特定数据结构.
set(key ,map,set) --> set(key ,1),set(key ,"2")
注意:要先启动redis服务端
对value为string类型的常用操作
set key value //将字符串值value关联到key
get key //返回key关联的字符串值
mset //同时设置一个或多个 key-value 对
mget //返回所有(一个或多个)给定 key 的值
incr key //将 key 中储存的数字值增1(key不存在,则初始化为0,再加1)
decr key //将 key 中储存的数字值减1(key不存在,则初始化为0,再减1)
incrBy key //自增多少
decrBy key
对key的常用操作
keys * //获取所有key列表
del key //删除key
expire key xx //设置key的过期时间(xx秒后过期)
ttl key //查看key的过期时间
select 0-15 //选择库
flushall //清空整个redis服务器数据,所有的数据库全部清空
flushdb //清除当前库,redis中默认有16个数据库,名称分别为0,1,2...15