Redis常用密令以及使用java连接操作redis
Redis常用命令
1连接redis
redis-cli -h 10.0.0.51 -p 6379
-
查看所有key
keys *
-
设置值
set aaa 100
-
获取值
get aaa
-
删除key
del aaa
-
查看数据库的详细信息
Info
-
查看连接客户端信息
client list
-
断开某个客户端的连接
cleint kill ip地址+端口号
Eg:cleint kill 10.0.0.51:44706
-
查看数据库中记录条数
Dbsize
-
清空所有数据
Flushall
-
监控
Monitor
Redis数据结构
Redis支持5中数据类型,string(字符串), hash(哈希), list(列表), set(集合), zset(sorted set:有序集合)。
-
String (字符串)
String是redis的最基本的类型,可以理解成与memcached一模一样的类型,一个key对一个value
String类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化对象。
String类型是redis最基本的数据类型,一个键最大能存储512MB。
-
Hash(哈希)
Hash是一个键值对集合。
Hash是一个string类型的field和value的映射表,hash特别适用于存储对象
每个hash可以存储2的32次放-1键值对(40多亿)
示例中的myhash是hash的key名称 name为属性名,liuzhuang为属性值
-
List(列表)
List列表是简单的字符串列表,按照插入顺序排序,你可以添加一个元素到列表头部(坐边)或者尾部(右边),每个列表最多可存储40多亿元素
从右边加,则在末尾加 rpush key value
从左边加,则在前面加 lpush key value
遍历 知道长度 lrange key 0 length-1
不知长度 lrange key 0 -1
10.0.0.51:6379>
//从边添加
10.0.0.51:6379> rpush mylist aaa
(integer) 1
10.0.0.51:6379> rpush mylist bbb
(integer) 2
10.0.0.51:6379> rpush mylist ccc
(integer) 3
10.0.0.51:6379> rindex mylist 0
(error) ERR unknown command 'rindex'
//取值
10.0.0.51:6379> lindex mylist 0
"aaa"
10.0.0.51:6379> lindex mylist 1
"bbb"
10.0.0.51:6379> lindex mylist 2
"ccc"
//遍历
10.0.0.51:6379> lrange mylist 0 -1
1) "aaa"
2) "bbb"
3) "ccc"
10.0.0.51:6379> lrange mylist 0 2
1) "aaa"
2) "bbb"
3) "ccc"
10.0.0.51:6379> lindex mylist -1
"ccc"
10.0.0.51:6379>
10.0.0.51:6379> lpush mylist ddd
(integer) 4
10.0.0.51:6379>
10.0.0.51:6379> lrange mylist 0 -1
1) "ddd"
2) "aaa"
3) "bbb"
4) "ccc"
List排序
-
Set(集合)
Set是string类型的无序集合。
Set中添加值sadd
-
Zset(有序集合)
Zset和set一样,也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序。
Zet的成员都是唯一的,但分数(score)却是可以重复的
Zadd密令 添加元素到集合,元素在集合中存在则更新对应的score
使用java操作redis
-
测试redis连通性
第一步:注释掉/etc/redis.conf第61行下面的bind 127.0.0.1 让所有客户端可以访问redis,并让配置文件生效 redis-server /etc/redis.conf
重启redis /bin/systemctl restart redis.service
第二步:开启防火墙6379端口 开启端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
并重启防火墙
firewall-cmd --reload #重启firewall
编写测试程序:
1创建工程、创建package、引入jedis-2.9.0.jar包
import redis.clients.jedis.Jedis;
/**
* 测试redis服务器连接是否正常
* @author Administrator
*
*/
public class RedisConnectTest {
/**
* @param args
*/
public static void main(String[] args) {
Jedis jedis = new Jedis("10.0.0.51",6379);
String ret=jedis.ping();
System.out.println(ret);
}
若控制台输出pong则表示联通。
-
使用java进行存储读取redis里面的数据
import java.util.List;
import redis.clients.jedis.Jedis;
/**
* 测试redis服务器连接是否正常
* @author Administrator
*
*/
public class RedisConnectTest {
/** 初始化jedis对象
* @param args
*/
public static void main(String[] args) {
//初始化jedis对象
Jedis jedis = new Jedis("10.0.0.51",6379);
//测试连通性
String ret=jedis.ping();
System.out.println(ret);
//保存值到redis数据库
/*jedis.set("hello", "world");
//获取从redis服务器中某个key的值
String str=jedis.get("hello");
System.out.println(str);*/
//list
//将数据存储到redis
/*for(int i=1;i<=6;i++){
jedis.lpush("myjavalist", i+"00");
}*/
//从redis中遍历取值
/*List<String> lrange= jedis.lrange("myjavalist", 0, -1);
for(String str:lrange){
System.out.println(str);
}*/
}
}