redis 学习笔记
2013-11-25 14:15
127 查看
举个例子,以下命令创建了一个新的数据库键值对,这个键值对的键和值都是字符串对象,它 们都包含一个sds 值: redis> SET book "Mastering C++ in 21 days" OK redis> GET book "Mastering C++ in 21 days" 以下命令创建了另一个键值对,它的键是字符串对象,而值则是一个集合对象: redis> SADD nosql "Redis" "MongoDB" "Neo4j" (integer) 3 redis> SMEMBERS nosql 1) "Neo4j" 2) "Redis" 3) "MongoDB"
public static void main(String[] args) { Jedis jedis = new Jedis("192.168.21.11"); jedis.set("foo", "hello"); String value = jedis.get("foo"); System.out.println(value); Set<String> set = jedis.smembers("nosql"); Iterator<String> itr = set.iterator(); while(itr.hasNext()){ String s = itr.next(); System.out.println(s); } jedis.append("foo", " world"); System.out.println(jedis.get("foo")); }
为了易于理解,我们用一个Redis 执行实例作为例子,解释一下,当执行以下代码时,Redis
内部发生了什么:
redis> SET msg "hello world"
OK
redis> APPEND msg " again!"
(integer) 18
redis> GET msg
"hello world again!"
Note: 这种分配策略会浪费内存吗?
执行过APPEND 命令的字符串会带有额外的预分配空间,这些预分配空间不会被释放,除非
该字符串所对应的键被删除,或者等到关闭Redis 之后,再次启动时重新载入的字符串对象将
不会有预分配空间。
因为执行APPEND 命令的字符串键数量通常并不多,占用内存的体积通常也不大,所以这一
般并不算什么问题。
另一方面,如果执行APPEND 操作的键很多,而字符串的体积又很大的话,那可能就需要修
改Redis 服务器,让它定时释放一些字符串键的预分配空间,从而更有效地使用内存。
相关文章推荐
- redis学习笔记一 之Redis 安装
- redis 学习笔记-client端示例代码
- NoSQL学习笔记之——Redis基础
- Redis学习笔记---字典类型
- Redis 常用命令学习笔记
- 学习笔记-Redis设计与实现-RDB持久化
- redis学习笔记
- redis学习笔记1
- redis学习笔记六之发布订阅
- Redis学习笔记1-Redis的介绍和认识
- Redis学习笔记-Redis安装部署
- 【Redis学习笔记】Redis初识
- Redis学习笔记(一)—— 入门
- redis命令,学习笔记
- redis 学习笔记(1)-编译、启动、停止
- redis 学习笔记(2)-client端示例代码
- Redis学习笔记一:redis简介及安装使用
- redis学习笔记-添加访问密码,设置随机启动
- Redis学习笔记:事务
- redis 学习笔记(7)-cluster 客户端(jedis)代码示例