【NoSql】Redis实践篇-简单demo实现(一)
2015-08-13 08:25
441 查看
Redis是一个key-value存储系统。Redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用 Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset--有序集合)和hash(哈希类型)。这些数据类型支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从复制)。
![](http://img.blog.csdn.net/20150813082045788?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
注:redis会自动保存数据到硬盘 所以如果是第二次开启时 多了一个 DB loaded from disk
![](http://img.blog.csdn.net/20150813082110285?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
输出结果: hejingyuanhejingyuanxvshu何静媛null[hejingyuan, 何静媛]
![](http://img.blog.csdn.net/20150813082138811?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20150813082151761?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
java操作Redis的各种测试:http://flychao88.iteye.com/blog/1527163
Memcache与Redis区别
Memcache提供的数据类型少,只有键值对,Redis提供的数据类型相对较多Memcache关机就没了,数据全部存到内存当中,但是没有提供故障恢复,Redis可以将数据存储到磁盘中redis提供主从复制,Memcache无Memcache是多线程的(使用协议解决的),redis是单线程Windows下Redis的安装使用
1,安装Redis
官方下载:http://redis.io/download可以根据需要下载不同版本 windows版:https://github.com/mythz/redis-windows 下载完成后 可以右键解压到 某个硬盘下比如E:\redis64-2.6。2,启动Redis
进入redis目录后 开启服务 (注意加上redis.conf) redis-server.exe redis.conf 这个窗口要保持开启 关闭时redis服务会自动关闭注:redis会自动保存数据到硬盘 所以如果是第二次开启时 多了一个 DB loaded from disk
3,测试使用
另外开启一个命令行窗口 进入redis目录下(注意修改自己的ip) redis-cli.exe -h 192.168.24.215 -p 63794,利用J***A操作Redis
import org.junit.After; import org.junit.Before; import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import javax.sound.midi.Soundbank; import java.util.*; public class RedisTest { JedisPool pool; Jedis jedis; @Before public void setUp() { pool = new JedisPool(new JedisPoolConfig(), "192.168.24.215"); jedis = pool.getResource(); /* jedis.auth("password"); */ } /** * Redis存储初级的字符串 * CRUD */ @Test public void testBasicString(){ //-----添加数据---------- jedis.set("name","hejingyuan");//向key-->name中放入了value-->hejingyuan System.out.println(jedis.get("name"));//执行结果:hejingyuan //-----修改数据----------- //1、在原来基础上修改 jedis.append("name","xvshu"); //很直观,类似map 将xvshu append到已经有的value之后 System.out.println(jedis.get("name"));//执行结果:hejingyuanxvshu //2、直接覆盖原来的数据 jedis.set("name","何静媛"); System.out.println(jedis.get("name"));//执行结果:何静媛 //删除key对应的记录 jedis.del("name"); System.out.println(jedis.get("name"));//执行结果:null /** * mset相当于 * jedis.set("name","hejingyuan"); * jedis.set("xvshu","何静媛"); */ jedis.mset("name","hejingyuan","xvshu","何静媛"); System.out.println(jedis.mget("name","xvshu")); } }
输出结果: hejingyuanhejingyuanxvshu何静媛null[hejingyuan, 何静媛]
结束语:
在操作过程中,Redis通过快照(snapshotting)方式默认保存到硬盘中,Redis默认会将快照文件存储在当前目录(可CONFIG GETdir来查看)的dump.rdb文件中,可以通过配置dir和dbfilename两个参数分别指定快照文件的存储路径和文件名。 在我们操作Redis过程中,它也在不断的向硬盘中存储java操作Redis的各种测试:http://flychao88.iteye.com/blog/1527163
相关文章推荐
- java中使用redis
- Redis集群的安装测试(伪分布模式 - 主从复制)
- Redis报错:ERR Operation against a key holding the wrong kind of value 解决处理
- Redis之小端转大端
- linux安装redis和redis的php扩展
- 4、redis之使用commons-pool
- [转]Redis有序集内部实现原理分析(二)
- [转]Redis有序集内部实现原理分析
- 安装phpredis
- redis主从切换配置
- (转)分布式中使用Redis实现Session共享(一)
- 解决WEB集群session同步的方案,Redis内存缓存
- Redis之双链表
- redis设计与实现
- Redis 的跳跃表实现
- Redis演示及使用场景
- Redis安装-ubuntu
- Redis的三种启动方式
- Redis的三种启动方式
- Redis的三种启动方式