注:转载请注明出处,谢谢O(∩_∩)O~
概述
概述内容摘抄自官网:
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询. Redis 内置了 复制(replication), LUA脚本(Lua scripting), LRU驱动事件(LRU eviction), 事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel) 和自动 分区(Cluster)提供高可用性(high availability).
你可以对这些类型执行 原子操作 , 列如: 字符串(strings)的append 命令; 散列(hashes)的hincrby命令; 列表(lists)的lpush命令; 集合(sets)计算交集sinter命令, 计算并集union命令 和 计算差集sdiff命令; 或者 在有序集合(sorted sets)里面获取成员的最高排名zrangebyscore命令.
为了实现其卓越的性能, Redis 采用运行在 内存中的数据集工作方式. 根据您的使用情况, 您可以每隔一定时间将 数据集导出到磁盘 , 或者 追加到命令日志中. 您也可以关闭持久化功能,将Redis作为一个高效的网络的缓存数据功能使用.
Redis 同样支持 主从复制(能自动重连和网络断开时自动重新同步),并且第一次同步是快速的非阻塞试的同步. 其他功能包括:
- 事务(Transactions)
- 订阅分发(Pub/Sub)
- LUA脚本(Lua scripting)
- 过期自动删除key
- 内存回收
- 自动故障转移
您可以使用 大多数的编程语言 来使用Redis.
Redis 使用 ANSI C 编写并且能在绝大Linux系统上运行,基于BSD协议,对OS X没有外部依赖. 我们支持Linux 和 OS X两种系统的开发和测试,我们推荐使用Linux部署. Redis 可以像SmartOS一样运行在Solaris系统中, 但是我们会最大力度的支持它. 官方不支持Windos版本的Redis,但微软开发和维护着支持win-64 的Redis版本
OK,以上都是说过场,下面开始实战。
Redis的安装、运行
server版本的redis安装请移步:把redis安装到ubuntu-14.04.1-server
推荐在linux下使用Redis,windows版本的也有,不过不是官方维护的,由微软的技术团队负责维护和支持(当然跟官方的一样有权威性!)。下面将介绍在ubuntu下如何安装,其他linux版本的其实也大同小异了。
目前redis最新版本是3.0.7,具体更新等内容请移至官网查看,输入以下命令:
第一个命令是下载软件包,第二个事解压缩,第三个是进入redis目录,第四个是编译(c开发的不想java的拿来即用,不同平台编译方式会略有差异,所以不会给直接能运行的文件,当然,也给不出(;`O´)o)。
使用以下命令运行redis:
经过以上几步,redis服务就已经开始运行了,此处采用的不含配置的启动方式,也可以使用以下命令使用含配置的启动方式:
配置的具体参数可以通过编辑redis.conf修改,至于如何修改,官网也有相关文档,此处只坐简单的演示,就不多说。
命令行运行启动服务的命令会进入redis启动成功的界面,我们可以在命令后面加上“&”符号让命令在后台运行,以便更方便的操作(当然,如果你使用的带桌面的ubuntu,你完全可以再打开一个终端来执行后面的操作)
运行客户端即可开始使用redis,输入以下命令进入客户端(同时也能检查redis是否正常运行):
如果配置了需要密码登陆的,需要使用如下命令:
命令行输入“ping”测试。
然后可以往里面添加数据了,下面添加一个String:
成功操作命令行会提示“OK”(java客户端的set函数也是这样返回的),接下来就获取设置的这个值:
当然,命令行会输出刚刚set进去的值“anxpp”,这部分暂时就介绍这么多了,如需了解更多,还请移步官网O(∩_∩)O~。
关闭redis:redis-cli shutdown
退出客户端:quit
使用Java操作Redis
相关的jar包支持
以下皆为当前最新版本,点击可下载。
commons-pool2-2.4.2.jar:Commons Pool组件提供了一整套用于实现对象池化的框架,以及若干种各具特色的对象池实现,可以有效地减少处理对象池化时的工作量,为其它重要的工作留下更多的精力和时间。
jedis-2.8.1.jar:redis客户端支持jar包。
连接并获取操作对象
- public class RedisDemo {
- JedisPool pool;
- Jedis jedis;
- public RedisDemo() {
- pool = new JedisPool(new JedisPoolConfig(), "192.168.40.129");
- jedis = pool.getResource();
- // jedis.auth("password");//如果配置了密码
- }
- }
下面的各种方法,都会添加到上面这个RedisDemo类中,并且一些说明都会写入注释,所以就不会额外的解释了。
Redis存储初级的字符串
- /**
- * 添加一个新值,若这个key已经存在,则替换掉之前的值
- * @param key 值的key
- * @param value 要添加的值
- * @return 添加成功时会返回“OK”,否则返回错误信息
- */
- public String setString(String key,String value){
- return jedis.set(key, value);
- }
- /**
- * 获取值
- * @param key 要获取的值对应的key
- * @return 若key存在,返回对应的值,若不存在,返回null
- */
- public String getString(String key){
- return jedis.get(key);
- }
- /**
- * 修改数据
- * @param key 要修改的值的key
- * @param appendStr 要添加的内容
- * @return 返回当前key对应String的长度
- * 若key不存在,就新增值,若存在,就添加到已存在的String的后面
- */
- public long appendString(String key,String appendStr){
- jedis.del(key);
- return jedis.append(key, appendStr);
- }
- /**
- * 删除String
- * @param key 要删除的值的key
- * @return 返回删除的个数
- * 若key不存在,就返回0,表示一个都没有删除
- */
- public long delString(String key){
- return jedis.del(key);
- }
更多阅读
Redis中的String