Redis、Redis数据类型、Java对Redis的操作

xiaoxiao2021-02-28  48

详细教程:http://blog.csdn.net/zhao13083837081/article/details/52382040

看了一天NoSql的Redis数据库,命令太多了不总结了,整理一下数据类型和Java对Redis的相关操作。

1、Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

String(字符串)

string是redis最基本的类型,可以理解成与Memcached一模一样的类型,一个key对应一个value。 string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。 string类型是Redis最基本的数据类型,一个键最大能存储512MB。 实例 redis 127.0.0.1:6379> SET name "leon" OK redis 127.0.0.1:6379> GET name "leon" 在以上实例中我们使用了 Redis 的 SET 和 GET 命令。键为 name,对应的值为 leon。 注意:一个键最大能存储512MB。

Hash(哈希) Redis hash 是一个键名对集合。 Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。 每个 hash 可以存储 232 -1 键值对(40多亿)。

List(列表) Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。 列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。

Set(集合) Redis的Set是string类型的无序集合。 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 sadd 命令 添加一个string元素到,key对应的set集合中,成功返回1,如果元素已经在集合中返回0,key对应的set不存在返回错误。 sadd key member 集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。

zset(sorted set:有序集合) Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。 zset的成员是唯一的,但分数(score)却可以重复。 zadd 命令 添加元素到集合,元素在集合中存在则更新对应score zadd key score member 

2、在 Java 中使用 Redis 前,需要安装 redis 服务及 Java redis 驱动

安装 Java redis 驱动: 1、首先要下载驱动包 下载 jedis.jar 2、在你的 classpath 中包含该驱动包

连接redis:

import redis.clients.jedis.Jedis; public class RedisJava { public static void main(String[] args) { //连接本地的 Redis 服务 Jedis jedis = new Jedis("localhost"); System.out.println("连接成功"); //查看服务是否运行 System.out.println("服务正在运行: "+jedis.ping()); } }

Redis Java String(字符串) 实例

import redis.clients.jedis.Jedis; public class RedisStringJava { public static void main(String[] args) { //连接本地的 Redis 服务 Jedis jedis = new Jedis("localhost"); System.out.println("连接成功"); //设置 redis 字符串数据 jedis.set("mykey", "hello"); // 获取存储的数据并输出 System.out.println("redis 存储的字符串为: "+ jedis.get("mykey")); } }

Redis Java List(列表) 实例

import java.util.List; import redis.clients.jedis.Jedis; public class RedisListJava { public static void main(String[] args) { //连接本地的 Redis 服务 Jedis jedis = new Jedis("localhost"); System.out.println("连接成功"); //存储数据到列表中 jedis.lpush("site-list", "hello"); jedis.lpush("site-list", "redis"); jedis.lpush("site-list", "world"); // 获取存储的数据并输出 List<String> list = jedis.lrange("site-list", 0 ,2); for(int i=0; i<list.size(); i++) { System.out.println("列表项为: "+list.get(i)); } } }

Redis Java Keys 实例

import java.util.Iterator; import java.util.Set; import redis.clients.jedis.Jedis; public class RedisKeyJava { public static void main(String[] args) { //连接本地的 Redis 服务 Jedis jedis = new Jedis("localhost"); System.out.println("连接成功"); // 获取数据并输出 Set<String> keys = jedis.keys("*"); Iterator<String> it=keys.iterator() ; while(it.hasNext()){ String key = it.next(); System.out.println(key); } } }

另附:

http://www.cnblogs.com/liuling/p/2014-4-19-04.html

转载请注明原文地址: https://www.6miu.com/read-70502.html

最新回复(0)