没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
一、 redis 环境搭建
简介
是一个开源的 数据库。它又经常被认为是一个数据结构服务器。因为它的
不仅包括基本的 类型还有 和 类型。当然这些类型的元素也都是
类型。也就是说 这些集合类型也只能包含
类型。你可以在这些类型上做很多原子性的操作。比如对一个字符 追加字符串(
命令)。加加或者减减一个数字字符串 命令,当 然是按整数处理的 可以对 类型进行 !或
者 !! 元素操作(可以模拟栈和队列)。对于 类型可以进行一些集合相关操作 "
#" 。$$"" 也有类似与%%的命令。
不过 $$"" 的 只包括 类型。远没有 的 类型丰富。和 $$" 一样为
了性能。 的数据通常都是放到内存中的。当然 可以每间隔一定时间将内存中数据写入到磁盘
以防止数据丢失。 也支持主从复制机制($!")。 的其他特性包括简
单的事务支持和 发布订阅!&'& 通道功能而且 配置管理非常简单。还有各种语言版本的开源
客户端类库。
() 目前是最新稳定版
可以在 * 下运行如下命令进行安装
$ tar xzf redis-2.0.4.tar.gz
$ cd redis-2.0.4
$ make
$ 完后 ()+ 目录下会出现编译后的 服务程序 还有用于测试的客户端程
序 "
下面启动 服务
$./redis-server
注意这种方式启动 使用的是默认配置。也可以通过启动参数告诉 使用指定配置文件使用下面
命令启动
$ ./redis-server redis.conf
", 是一个默认的配置文件。我们可以根据需要使用自己的配置文件。
启动 服务进程后,就可以使用测试客户端程序 " 和 服务交互了
比如
$ ./redis-cli
redis> set foo bar
OK
redis> get foo
"bar"
这里演示了 和 命令操作简单类型 的例子。, 是 & 是个 类型的
没 * 的可以通过这个在线的来练习,当然在线版的很多管理相关的命令是不支持的。
-.java 客户端 hello,world
版本目前有点老,支持到 (.。最新版 () 的还没
在 "! 中新建一个 / 项目,然后添加 / 包引用。下面是个 0 程序
package jredisStudy;
import org.jredis.*;
import org.jredis.ri.alphazero.JRedisClient;
public class App {
public static void main(String[] args) {
try {
JRedis jr = new JRedisClient("192.168.56.55",6379); //redis 服务地址和端口
号
String key = "mKey";
jr.set(key, "hello,redis!");
String v = new String(jr.get(key));
String k2 = "count";
jr.incr(k2);
jr.incr(k2);
System.out.println(v);
System.out.println(new String(jr.get(k2)));
} catch (Exception e) {
// TODO: handle exception
}
}
}
好了 环境已经搭建好了。后面会写写 的各种类型和类型相关的命令和一些具体的应用场景
二、 redis
学习笔记之数据类型
本文介绍下 支持的各种数据类型包括 和
1. keys
本质上一个 &,所以我们首先来看看他的 首先 也是字符串类型,但是 中不能包括边界字符
由于 不是 &, 的字符串,所以像1$1和1$21这样包含空格和换行的 是不允许的
顺便说一下在 内部并不限制使用 & 字符,这是 协议限制的。1221在协议格式中会作为特殊字符。
( 以后的协议中部分命令已经开始使用新的协议格式了比如 345 。总之目前还是把包含边界字符当成非法的
吧,
免得被 & 纠缠。
另外关于 的一个格式约定介绍下,&/"!667。比如 6)))6!0,&6****6
还有 的长度最好不要太长。道理很明显占内存啊,而且查找时候相对短 也更慢。不过也推荐过短的 ,
比如 6)))6!0这样的。显然没上面的 6)))6!0 可读性好。
下面介绍下 相关的命令
*测试指定 是否存在,返回 表示存在,) 不存在
(删除给定 返回删除 的数目,) 表示给定 都不存在
!返回给定 的 类型。返回 表示不存在 字符类型,链表类型 无序集合类型
!返回匹配指定模式的所有 下面给个例子
8,
9:
8,
9:
8#
9:
8;
11
(11
-11
8<=
11
(11
8>
11
(11
-11
$返回从当前数据库中随机选择的一个 如果当前数据库是空的,返回空串
$0原子的重命名一个 如果 0 存在,将会被覆盖,返回 表示成功,) 失败。可能是
不存在或者和 0 相同
$*0同上,但是如果 0 存在返回失败
&?返回当前数据库的 数量
*!"为 指定过期时间,单位是秒。返回 成功,) 表示 已经设置过过期时间或者不存在
返回设置过过期时间的 的剩余过期秒数 表示 不存在或者没有设置过过期时间
"&*通过索引选择数据库,默认连接的数据库所有是 )默认数据库数是 . 个。返回 表示成功,) 失败
$&*将 从当前数据库移动到指定数据库。返回 成功。)如果 不存在,或者已经在指定数据库中
@&删除当前数据库中所有 此方法不会失败。慎用
@删除所有数据库中的所有 ,此方法不会失败。更加慎用
2. string 类型
是 最基本的类型,而且 类型是二进制安全的。意思是 的 可以包含任何数据。比如 /! 图片或
者序列化的对象
。从内部实现来看其实 可以看作 & 数组,最大上限是 A 字节。下面是 类型的定义。
"B
C
,C
"&,<=C
DC
&, 是个 " 数组用于存贮实际的字符串内容。其实 " 和 "E中的 & 是等价的,都是一个字节
是 &, 数组的长度,, 是数组中剩余可用字节数。由此可以理解为什么 类型是二进制安全的了。因为它本质上就
是个 & 数组。
当然可以包含任何数据了。另外 类型可以被部分命令按 处理比如 " 等命令,下面详细介绍。还有 的其他
类型像 ,
它们包含的元素与都只能是 类型。
如果只用 类型, 就可以被看作加上持久化特性的 $$""当然 对 类型的操作比 $$""
多很多啊。如下:
剩余33页未读,继续阅读
资源评论
fishinhouse
- 粉丝: 98
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功