Redis的键值设置(4)
来源:互联网 发布:淘宝店装修视频 编辑:程序博客网 时间:2024/05/21 22:39
tag在互联网应用里尤其多见,首先看下面的关系型数据表:
Book表:
id
name
author
1
The Ruby Programming Language
Mark Pilgrim
2
Ruby on rail
David Flanagan
3
Programming Erlang
Joe Armstrong
Tag表:
tag_name
book_id
ruby
1
ruby
2
web
2
erlang
3
现在用redis将这两张表的数据存起来:
保存Book的数据:
redis 127.0.0.1:6379> incr book_id #用book_id这个key保存book表的id,每次要获得一个新的
#book_id用incr命令自增取得
(integer) 1
#incr命令返回1,则用key为book:1的hash来保存一个book对象,对象属性为hash的field
redis 127.0.0.1:6379> hset book:1 name "The Ruby Programming Language"
(integer) 1
redis 127.0.0.1:6379> hset book:1 author "Mark Pilgrim"
(integer) 1
redis 127.0.0.1:6379> hgetall book:1 #用hgetall命令测试一个,返回hash的所有属性和值
1) "name"
2) "The Ruby Programming Language"
3) "author"
4) "Mark Pilgrim"
redis 127.0.0.1:6379> incr book_id #创建第2个book对象,先incr一个book_id获得新book的id
(integer) 2
redis 127.0.0.1:6379> hset book:2 name "Ruby on rail"
(integer) 1
redis 127.0.0.1:6379> hset book:2 author "David Flanagan"
(integer) 1
redis 127.0.0.1:6379> hgetall book:2
1) "name"
2) "Ruby on rail"
3) "author"
4) "David Flanagan"
redis 127.0.0.1:6379> incr book_id
(integer) 3
redis 127.0.0.1:6379> hset book:3 name "Programming Erlang"
(integer) 1
redis 127.0.0.1:6379> hset book:3 author "Joe Armstrong"
(integer) 1
redis 127.0.0.1:6379> hgetall book:3
1) "name"
2) "Programming Erlang"
3) "author"
4) "Joe Armstrong"
保存Tag的数据,使用集合来存储数据,因为集合可以求交集、并集、差集:
redis 127.0.0.1:6379> sadd tag:ruby 1
(integer) 1
redis 127.0.0.1:6379> sadd tag:ruby 2
(integer) 1
redis 127.0.0.1:6379> sadd tag:web 2
(integer) 1
redis 127.0.0.1:6379> sadd tag:erlang 3
(integer) 1
如果要取得即属于ruby又属于web的书:
redis 127.0.0.1:6379> sinter tag:ruby tag:web
1) "2"
如果要取得属于ruby,但不属于web的书:
redis 127.0.0.1:6379> sdiff tag:ruby tag:web
1) "1"
属于ruby和属于web的书的合集:
redis 127.0.0.1:6379> sunion tag:ruby tag:web
1) "1"
2) "2"
- Redis的键值设置(4)
- Redis数据库的键值设计
- Redis 数据库的键值设计
- Redis数据库的键值设计
- 浅谈Redis的键值设计
- 浅谈redis数据库的键值设计
- (转)浅谈 Redis 数据库的键值设计
- 浅谈Redis数据库的键值设计
- 浅谈redis数据库的键值设计
- 浅谈Redis数据库的键值设计
- 浅谈REDIS数据库的键值设计
- 浅谈Redis数据库的键值设计
- 浅谈redis数据库的键值设计(zhuan)
- 浅谈redis数据库的键值设计
- 浅谈 Redis 数据库的键值设计
- 浅谈 Redis 数据库的键值设计
- 浅谈 Redis 数据库的键值设计
- 浅谈Redis数据库的键值设计
- 基于cocos2d-x的2.1.3 android真机调试图片加载问题的深究
- Android调节屏幕亮度分析源码
- javaweb - 过滤器
- hadoop权限管理
- UNIX环境高级编程读书笔记(十)—信号 (2)
- Redis的键值设置(4)
- jQuery获取Select选择的Text和 Value(转)
- 解决linux 接投影仪时显示窗口很小的问题
- mysql查询一天内,一周内,一月内数据
- hadoop mapred-queue-acls 配置
- 调研产品分析
- GridView动态绑定列(据条件显示某些列)
- 简单的str函数重写
- 用JSTL实现四舍五入