Redis支援5種資料類型,它們描述如下:
Strings - 字串
Redis的字串是位元組序列。在Redis中字串是二進位安全的,這意味著他們有一個已知的長度,是沒有任何特殊字元終止決定的,所以可以儲存任何東西,最大長度可達512兆。
java添加,查詢操作如下:
@Testpublic void testString() {ValueOperations<String, String> ops = this.template.opsForValue();String key = "helloh";if (!this.template.hasKey(key)) {ops.set(key, "fodo");logger.warn("Found key " + key + ", value=" + ops.get(key) );} else {logger.warn("key is " + key + "exists!");}}
Hashes - 雜湊值
Redis的雜湊索引值對的集合。 Redis的雜湊值是字串欄位和字串值之間的映射,所以它們被用來表示對象
java添加,查詢操作如下:
@Testpublic void testHashset() {HashOperations<String, Object, Object> ops = this.template.opsForHash();String key = "user:1";if (!this.template.hasKey(key)) {ops.put(key, "name", "fengchao");ops.put(key, "sex", "boy");System.out.println("set succeed");} else {System.out.println("key is exist");Set<Object> keys = ops.keys(key);for (Object k : keys) {System.out.println("key " + key );}}}
Lists - 列表
Redis的列表是簡單的字串列表,排序插入順序。可以添加元素到Redis列表的頭部或尾部。
java添加,查詢操作如下:
@Testpublic void testList() {ListOperations<String, String> ops = this.template.opsForList();String key = "name";ops.leftPush(key, "li");if (!this.template.hasKey(key)) {ops.leftPush(key, "feng");ops.leftPush(key, "wang");ops.leftPush(key, "li");System.out.println("set succeed");} else {System.out.println("key is exist");Long size = ops.size(key);List<String> list = ops.range(key, 0, size);for (String value : list) {System.out.println(value);}}}
Sets - 集合
Redis集合是字串的無序集合。在Redis中可以添加,刪除和測試檔案是否存在在O(1)的時間複雜度的成員。
java添加,查詢操作如下:
@Testpublic void testSet() {SetOperations<String, String> ops = this.template.opsForSet();String key = "likes";if (!this.template.hasKey(key)) {Long add = ops.add(key, "sport","eat","play","play");System.out.println("set succeed add is" + add);} else {Set<String> members = ops.members(key);for (String value : members) {System.out.println(value);}}}
集合排序
Redis的集合排序類似於Redis集合,字串不重複的集合。不同的是,一個有序集合的每個成員關聯分數,用於以便採取有序set命令,從最小的到最大的分數有關。雖然成員都是獨一無二的,分數可能會重複。
java添加,查詢操作如下:
@Testpublic void testZList() {ZSetOperations<String, String> ops = this.template.opsForZSet();String key = "foods";ops.add(key, "test", 4);if (!this.template.hasKey(key)) {ops.add(key, "friute", 0);ops.add(key, "rice", 1);ops.add(key, "apple", 1);ops.add(key, "balane", 5);System.out.println("set succeed" );} else {Set<String> sets = ops.rangeByScore(key, 0, 1000);for (String value : sets) {System.out.println(value);}}}