初步理解Redis及其安装配置
来源:互联网 发布:电力工程预算软件 编辑:程序博客网 时间:2024/05/17 17:58
1, Redis是什么
REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。
NoSql. 对这个NoSql的印象源自我上学期一个讲分布式和云计算的课程的final report。说实话我连那篇report的题目都忘了,但是记得大概内容是在说NoSql好。主要的好处是可以有复杂的数据结构吧,然后容易和面向对象做个映射。回忆下曾经设计关系型数据库各种伤脑筋思考如何把各种复杂对象映射到一个带关系网络的平面二维表就大概可以知道这个的好处了。
2,数据结构
- 字符串:大家都知道字符串是什么玩意,上例子。
1: $ redis-cli set mykey "my binary safe value"
2: OK
3: $ redis-cli get mykey
4: my binary safe value
- 列表
这里指的是链表,而非数组。区别在于,链表对插入操作比较友好,数组对遍历比较友好。友好的意思是速度友好。这个对于要做查询的话可能会稍微慢一点点,总之还有别的机制来保证速度问题,比扔一个存着几亿数字的数组在内存里好多了。因为对数据库来说,保证插入的速度是很关键的。主要命令有两个LPUSH,RPUSH。L代表左,R代表右。
1: $ redis-cli rpush messages "Hello how are you?"
2: OK
3: $ redis-cli rpush messages "Fine thanks. I‘m having fun with Redis"
4: OK
10: 3. I should look into this NOSQL thing ASAP
5: $ redis-cli rpush messages "I should look into this NOSQL thing ASAP"
6: OK
7: $ redis-cli lrange messages 0 2
8: 1. Hello how are you?
9: 2. Fine thanks. I‘m having fun with Redis
LRANGE用来获取子列表。第一个元素的索引为0。需要注意的是,-1并不代表空列表,而是最后一个数的索引,-2代表倒数第二个。
存储对象时,值中通常存储对象ID。
1: $ redis-cli incr next.news.id
2: (integer) 1
3: $ redis-cli set news:1:title "Redis is simple"
4: OK
5: $ redis-cli set news:1:url "http://code.google.com/p/redis"
6: OK
7: $ redis-cli lpush submitted.news 1
8: OK
第一句为自增一个id。但是这段代码里的next和submitted是如何和对象联系在一起的,还不明白,待会回头理解。=> 传说中的命名空间,继续看。
- 集合
SADD命令可以向集合添加一个新元素。
1: $ redis-cli sadd myset 1
2: (integer) 1
3: $ redis-cli sadd myset 2
4: (integer) 1
5: $ redis-cli sadd myset 3
6: (integer) 1
7: $ redis-cli smembers myset
8: 1. 3
9: 2. 1
10: 3. 2
SMEMEBER命令获取集合里的元素。
- 有序集合
有木有觉得这个名字有点怪怪的?总之了,就是可以根据某个字段排序,在插入的时候就根据那个排好了。
1: $ redis-cli zadd hackers 1940 "Alan Kay"
2: (integer) 1
3: $ redis-cli zadd hackers 1953 "Richard Stallman"
4: (integer) 1
5: $ redis-cli zadd hackers 1965 "Yukihiro Matsumoto"
6: (integer) 1
7: $ redis-cli zadd hackers 1916 "Claude Shannon"
8: (integer) 1
9: $ redis-cli zadd hackers 1969 "Linus Torvalds"
10: (integer) 1
11: $ redis-cli zadd hackers 1912 "Alan Turing"
12: (integer) 1
这个插入之后可以看到是按照年份从小到大排序的。从年老到年轻排序的。输出结果
1: $ redis-cli zrange hackers 0 -1
2: 1. Alan Turing
3: 2. Claude Shannon
4: 3. Alan Kay
5: 4. Richard Stallman
6: 5. Yukihiro Matsumoto
7: 6. Linus Torvalds
反向输出
1: $ redis-cli zrevrange hackers 0 -1
2: 1. Linus Torvalds
3: 2. Yukihiro Matsumoto
4: 3. Richard Stallman
5: 4. Alan Kay
6: 5. Claude Shannon
7: 6. Alan Turing
在有多种排序切换的实际应用中,可以考虑把每个元素加入多个有序集合,比SORT命令的效率可能会高。
- 哈希表
批量修改和获取。
1: redis 127.0.0.1:6379> HMSET kid name Akshi age 2 sex Female
2: OK
3: redis 127.0.0.1:6379> HMGET kid name age sex
4: 1) "Akshi"
5: 2) "2"
6: 3) "Female"
查看已有的哈希表的值及删除操作
1: redis 127.0.0.1:6379> HKEYS student
2: 1) "name"
3: 2) "age"
4: 3) "sex"
5: redis 127.0.0.1:6379> HVALS student
6: 1) "Ganesh"
7: 2) "30"
8: 3) "Male"
9: redis 127.0.0.1:6379> HGETALL student
10: 1) "name"
11: 2) "Ganesh"
12: 3) "age"
13: 4) "30"
14: 5) "sex"
15: 6) "Male"
16: redis 127.0.0.1:6379> HDEL student sex
17: (integer) 1
18: redis 127.0.0.1:6379> HGETALL student
19: 1) "name"
20: 2) "Ganesh"
21: 3) "age"
22: 4) "30"
其他详细的命令请参考Redis Documentation。 redis网站上还有个交互式的入门教程interactive tutorial。
3,Redis的安装 (Window)
下载地址:https://github.com/dmajkic/redis/downloads 是一个第三方的预编译文件夹,官方只有linux的
Redis文件夹有以下几个文件
redis-server.exe:服务程序
redis-check-dump.exe:本地数据库检查
redis-check-aof.exe:更新日志检查
redis-benchmark.exe:性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 (类似于 Apache 的ab 工具).
启动服务器端
解压目录:\>redis-server.exe redis.conf
之后命令窗口上会一直打印有多少个客户端连接了。虽然一直在打印看得心里不舒服的,还是得开着
启动客户端
新开一个命令行窗口,指定一服务器和端口
解压目录:\>redis-cli.exe -h 127.0.0.1 -p 6379
之后就可以在客户端直接操作了
终于把命令行给运行出来了,这个东西存储在哪目前不明,以后继续。
PS:客户端关闭后,继续lrange friends –1,结果还是存在的。服务器关闭之后再开启就没了,,,这个要是服务器断电当机了怎么办。。。应该有解决办法吧,先把程序测试通了再继续
PSPS:这个LiveWriter上的编辑格式很不好用,不知道是LiverWriter影响的,还是我的网站样式本来就不支持,总之用得挺不舒服的,特别是还不能调段落,而且懒得改CSS样式的时候。
- 初步理解Redis及其安装配置
- 初步理解Redis及其安装配置
- 初步理解Redis及其安装配置
- 浅谈Redis及其安装配置
- redis安装及其相关配置
- Redis的初步安装
- 对Redis的初步理解
- winow环境下安装redis 及其配置详解
- 安装laravel及其初步使用
- redis 安装及其使用
- Redis简介及其安装
- Redis 初步配置及配置文件
- redis的安装并在java中初步使用(spring配置redis)
- tomcat安装配置初步
- Redis配置及其参数说明
- Soot的安装及其初步使用
- redis--集群--初步安装(转)
- #redis redis-php安装配置
- 黑马程序员-Map集合
- 软件测试之魂:核心测试设计精解
- mac 下 的unix快捷方式
- maven作工程管理的一些使用建议[updating]
- 支持向量机(SVM)、支持向量回归(SVR)
- 初步理解Redis及其安装配置
- xen下电流程分析(3)
- Observer(观察者模式)
- GUI显示系统之SurfaceFlinger--- Gralloc与Framebuffer
- linux压缩及备份与解压缩
- struts2注解
- SecureCRT ssh 连接 Linux服务器 响应缓慢
- 漏极开路
- Hdu 4545 魔法串 字符串dp