一、Redis的五大数据类型
(1)String(字符串)
string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M
(2)Hash(哈希,类似java中的Map)
Redis hash 是一个键值对集合。Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。类似Java里面的Map<String,Object>
(3)List(列表)
Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。它的底层实际是个链表
(4)Set(集合)
Redis的Set是string类型的无序集合。它是通过HashTable实现实现的,
(5)ZSet(有序集合)
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。
redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。
二、哪里去获得redis常见数据类型操作命令
Http://redisdoc.com/
三、Redis键(针对key的一些操作)
四、String类型
例子:
设置一个String缓存
获取一个String缓存
给缓存值加1(只针对是整数类型的value,否则会报错)
五、列表(List)
将a b c塞入一个list1
展示该list
在塞入一个d 进 list1
获取list第一个第一个元素
如上述:lpush+lpop就形成了一个栈,先进后出,d是最后进入list1,确最先被取出来
取出最后一个元素:如下图所示lpush+rpop 就形成一个队列,先进先出。
六、Set
设置一个 set集合
查看其成员
可以看出是无序的,但是其内部元素保持唯一
七、ZSet
例如
这里有几首歌的搜藏排名
查看收藏次数为200000到150000的歌曲,分数由高到低排序
八、Hash
哈希类型也是key-value结构,key是字符串类型,其value分为两个部分:field和value
其中field部分代表属性,value代表属性对应的值
设置一个user hash值,里面包含name 和 age
获取user中的age
获取user中的全部属性
关于Java连接Redis简单测试
首先需要引入redis客户端的包,这里使用的是maven引入的
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.1.0</version>
</dependency>
接下来我们直接看一下java是如何连接redis的。
这里我们使用Jedis去连接(jedis就是集成了redis的一些命令操作,封装了redis的java客户端)
/**
* java连接redis测试
* @param
*/
public static void connectRedis (){
//连接本地的 Redis 服务
jedis = new Jedis("192.168.220.101",6379);
//查看服务是否运行,打出pong表示OK
System.out.println("connection is OK==========>: "+jedis.ping());
}
这里我的Redis是安装在虚拟机上面的Linux系统上,这台虚拟机的IP地址是192.168.220.101,Redis连接的默认端口是6379.所以在Jedis中设置这些属性就可以直接访问了。
测试结果:
接下来我们进行简单的设置一个String类型的缓存
/**
* 设置String 的 redis数据
* @param key
* @param value
*/
public static void setString(String key, String value) {
connectRedis();
jedis.append(key,value);
System.out.println(jedis.get(key));
}
public static void main(String[] args) {
setString("wqTest","Hello Redis");
}
我们来看看执行后的结果:
我们再去虚拟机上验证一下
验证是没问题了。上述的类型操作都可以在Jedis中找到对应的方法去访问。这里就不一一解释了。
下次会给大家介绍一下Redis上的数据持久化