SlideShare a Scribd company logo
Redisをドキュメント指向DBとし
        て使う
      2010/2/27(Sat)
   OSC 2010 Tokyo/Spring
         z.ohnami
1.2.2
2/18 Released !!
Redisの特徴

 インメモリーなKVS
  ゆえに、高速
  それでいて、データは永続化
 4種類のデータ型
  型ごとに豊富なAPIを備える
コンパイルしましょう
$ wget http://redis.googlecode.com/files/redis-1.2.2.tar.gz

$ tar xvzf redis-1.2.2.tar.gz

$ cd redis-1.2.2

$ make
使ってみましょう
Redisの起動
 $ ./redis-server

データ格納
 $ ./redis-cli set name z.ohnami

データを入手
 $ ./redis-cli get name
 z.ohnami

docフォルダにはHTMLドキュメントも充実!!
Document-Oriented Database
For example here's a document:

FirstName="Bob", Address="5 Oak St.", Hobby="sailing".

Another document could be:

FirstName="Jonathan", Address="15 Wanamassa Point Road", Children=("Michael,
10", "Jennifer,8", "Samantha,5", "Elena,2").

Notice that both documents have some similar information and some different - but
unlike a relational database where each record would have the same set of fields and
unused fields might be kept empty, there are no empty 'fields' in either document
(record) in this case. This system allows information to be added any time without
wasting storage space for "empty fields" as in relational databases.

 From Wikipedia Document-Oriented Database

  http://en.wikipedia.org/wiki/Document-oriented_database
Semi Structured Data

  ゆるーくデータを管理する
CouchDBの場合
{                         {
 _id:xxx,                  _id:yyy,
  "なまえ":"まこと",              "なまえ":"ぽったー",
  "せいべつ":"おとこ",             "せいべつ":"おとこ",
  "しょくぎょう":"SE",            "しょくぎょう":
  "とくぎ":["小走り","歯ぎしり"],       ["SE","魔法使い"]
  "そうび":"{                  "まほう":["JScript","bash"],
     "あたま":"めがね",             "そうび":"{
     "からだ":"桃色ニット",              "あたま":"めがね",
     "あし":"ぞうり",                 "からだ":"くさりかたびら",
     "PC":"ネットブック"               "あし":"ホーキンス",
                                 "PC":"MacBook Air",
   }"                            "そのた":""
}                              }"
                          }
Redisならどうやる!?

     ???
set profile:1:name z.ohnami

         key & value
set profile:1:name z.ohnami
set profile:1:blood A
set profile:1:age 30

set profile:2:name y.konami
set profile:2:blood C++
set profile:2:height 140
4種類のデータ型

   四
String型
$ ./redis-cli set OSC "OSC 2010 Tokyo/Spring"

$ ./redis-cli get OSC
OSC 2010 Tokyo/Spring
計算もできます
$ ./redis-cli set cnt 0
$ ./redis-cli incr cnt
(integer) 1

$ ./redis-cli incrby cnt 10
(integer) 11
$ ./redis-cli decrby cnt 10
(integer) 1

$ ./redis-cli decr cnt
(integer) 0
List型
$ ./redis-cli rpush msg "CouchDB"
$ ./redis-cli rpush msg "MongoDB"
$ ./redis-cli rpush msg "Redis"
$ ./redis-cli rpush msg "Lotus/Domino"

$ ./redis-cli lrange msg 0 3
1. CouchDB
2. MongoDB
3. Redis
4. Lotus/Domino
Sets型
$ ./redis-cli sadd hobby:baseball z.ohnami
$ ./redis-cli sadd hobby:swiming z.ohnami
$ ./redis-cli sadd hobby:swiming y.ohnami
$ ./redis-cli sadd hobby:swiming x.ohnami

$ ./redis-cli sinter hobby:swiming
1. z.ohnami
2. y.ohnami
3. x.ohnami
Sorted sets型
$ ./redis-cli zadd relax 120 マッサージ
$ ./redis-cli zadd relax -20 二日酔い
$ ./redis-cli zadd relax 50 爪切り
$ ./redis-cli zadd relax -50 深爪
$ ./redis-cli zadd relax 100 お風呂

$ ./redis-cli zrange relax 0 -1
1. 深爪
2. 二日酔い
3. 爪切り
4. 風呂
5. マッサージ
使ってみての感想
ドキュメント指向DBとして使えそう
 アスタリスクでキーの検索可能
   ./redis-cli keys profile:1:*
 添付ファイルは格納できるか?
   今回、未チェックです。。
はじめる際の敷居が低い
 インストールが楽でした
 APIも覚えやすいはず
 コードも少ないから学習にも

More Related Content

What's hot

webエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのrediswebエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのredis
nasa9084
 
C83 λカ娘の販促にやってきました
C83 λカ娘の販促にやってきましたC83 λカ娘の販促にやってきました
C83 λカ娘の販促にやってきましたKiwamu Okabe
 
Dive into .git 日本語版
Dive into .git 日本語版Dive into .git 日本語版
Dive into .git 日本語版
nishio
 
nioで作ったBufferedWriterに変えたら例外になった
nioで作ったBufferedWriterに変えたら例外になったnioで作ったBufferedWriterに変えたら例外になった
nioで作ったBufferedWriterに変えたら例外になった
chibochibo
 
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
parrotstudio
 
ActiveHash
ActiveHashActiveHash
ActiveHash
Sachirou Inoue
 
Mac_Terminal_ver1.0
Mac_Terminal_ver1.0Mac_Terminal_ver1.0
Mac_Terminal_ver1.0
Satoshi Kume
 
Go言語のスライスを理解しよう
Go言語のスライスを理解しようGo言語のスライスを理解しよう
Go言語のスライスを理解しよう
Yasutaka Kawamoto
 
WDD2012_SC-004
WDD2012_SC-004WDD2012_SC-004
WDD2012_SC-004
Kuninobu SaSaki
 
WebAppDev勉強会 #2 at cafe? IKAGAWA DO
WebAppDev勉強会 #2 at cafe? IKAGAWA DOWebAppDev勉強会 #2 at cafe? IKAGAWA DO
WebAppDev勉強会 #2 at cafe? IKAGAWA DOKohei Noda
 
OpenStreetMap+MongoDBで地図情報を検索してみたい!
OpenStreetMap+MongoDBで地図情報を検索してみたい!OpenStreetMap+MongoDBで地図情報を検索してみたい!
OpenStreetMap+MongoDBで地図情報を検索してみたい!
Naruhiko Ogasawara
 
Chiba.pm #1 lt @studio3104
Chiba.pm #1 lt @studio3104Chiba.pm #1 lt @studio3104
Chiba.pm #1 lt @studio3104Satoshi Suzuki
 
もにかじ2 lt @studio3104
もにかじ2 lt @studio3104もにかじ2 lt @studio3104
もにかじ2 lt @studio3104Satoshi Suzuki
 
Haskell超初心者勉強会11
Haskell超初心者勉強会11Haskell超初心者勉強会11
Haskell超初心者勉強会11Takashi Kawachi
 
Distributed processwithapex&flow lowcode
Distributed processwithapex&flow lowcodeDistributed processwithapex&flow lowcode
Distributed processwithapex&flow lowcode
furuCRM株式会社 CEO/Dreamforce Vietnam Founder
 
Common LispでGPGPU
Common LispでGPGPUCommon LispでGPGPU
Common LispでGPGPU
gos-k
 
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyotoGo言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Shoot Morii
 
お手軽並列処理
お手軽並列処理お手軽並列処理
お手軽並列処理博文 斉藤
 

What's hot (19)

webエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのrediswebエンジニアのためのはじめてのredis
webエンジニアのためのはじめてのredis
 
C83 λカ娘の販促にやってきました
C83 λカ娘の販促にやってきましたC83 λカ娘の販促にやってきました
C83 λカ娘の販促にやってきました
 
Dive into .git 日本語版
Dive into .git 日本語版Dive into .git 日本語版
Dive into .git 日本語版
 
nioで作ったBufferedWriterに変えたら例外になった
nioで作ったBufferedWriterに変えたら例外になったnioで作ったBufferedWriterに変えたら例外になった
nioで作ったBufferedWriterに変えたら例外になった
 
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
どきっ!三行で作るランダムダンジョン!?~WEBもあるよ!~ - 2010/8/21 群馬Web研究会(勉強会)
 
ActiveHash
ActiveHashActiveHash
ActiveHash
 
Mac_Terminal_ver1.0
Mac_Terminal_ver1.0Mac_Terminal_ver1.0
Mac_Terminal_ver1.0
 
Go言語のスライスを理解しよう
Go言語のスライスを理解しようGo言語のスライスを理解しよう
Go言語のスライスを理解しよう
 
WDD2012_SC-004
WDD2012_SC-004WDD2012_SC-004
WDD2012_SC-004
 
WebAppDev勉強会 #2 at cafe? IKAGAWA DO
WebAppDev勉強会 #2 at cafe? IKAGAWA DOWebAppDev勉強会 #2 at cafe? IKAGAWA DO
WebAppDev勉強会 #2 at cafe? IKAGAWA DO
 
OpenStreetMap+MongoDBで地図情報を検索してみたい!
OpenStreetMap+MongoDBで地図情報を検索してみたい!OpenStreetMap+MongoDBで地図情報を検索してみたい!
OpenStreetMap+MongoDBで地図情報を検索してみたい!
 
Chiba.pm #1 lt @studio3104
Chiba.pm #1 lt @studio3104Chiba.pm #1 lt @studio3104
Chiba.pm #1 lt @studio3104
 
もにかじ2 lt @studio3104
もにかじ2 lt @studio3104もにかじ2 lt @studio3104
もにかじ2 lt @studio3104
 
Haskell超初心者勉強会11
Haskell超初心者勉強会11Haskell超初心者勉強会11
Haskell超初心者勉強会11
 
Oneliner
OnelinerOneliner
Oneliner
 
Distributed processwithapex&flow lowcode
Distributed processwithapex&flow lowcodeDistributed processwithapex&flow lowcode
Distributed processwithapex&flow lowcode
 
Common LispでGPGPU
Common LispでGPGPUCommon LispでGPGPU
Common LispでGPGPU
 
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyotoGo言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
 
お手軽並列処理
お手軽並列処理お手軽並列処理
お手軽並列処理
 

Viewers also liked

CouchDB20091120_validation
CouchDB20091120_validationCouchDB20091120_validation
CouchDB20091120_validationMakoto Ohnami
 
CouchDBをヤラナイカ
CouchDBをヤラナイカCouchDBをヤラナイカ
CouchDBをヤラナイカ
Makoto Ohnami
 
CouchDB in The Room
CouchDB in The RoomCouchDB in The Room
CouchDB in The Room
Makoto Ohnami
 
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティスJsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Yoichi KIKUCHI
 
大規模スクラムの失敗から学んだこと #AgileJapan2015
大規模スクラムの失敗から学んだこと #AgileJapan2015大規模スクラムの失敗から学んだこと #AgileJapan2015
大規模スクラムの失敗から学んだこと #AgileJapan2015
Itsuki Sakitsu
 
情科若会2016公開用
情科若会2016公開用情科若会2016公開用
情科若会2016公開用
Ko Ise
 
あなたのチームの「いい人」は機能していますか?
あなたのチームの「いい人」は機能していますか?あなたのチームの「いい人」は機能していますか?
あなたのチームの「いい人」は機能していますか?
Minoru Yokomichi
 
SlideShare 101
SlideShare 101SlideShare 101
SlideShare 101
Amit Ranjan
 

Viewers also liked (8)

CouchDB20091120_validation
CouchDB20091120_validationCouchDB20091120_validation
CouchDB20091120_validation
 
CouchDBをヤラナイカ
CouchDBをヤラナイカCouchDBをヤラナイカ
CouchDBをヤラナイカ
 
CouchDB in The Room
CouchDB in The RoomCouchDB in The Room
CouchDB in The Room
 
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティスJsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
 
大規模スクラムの失敗から学んだこと #AgileJapan2015
大規模スクラムの失敗から学んだこと #AgileJapan2015大規模スクラムの失敗から学んだこと #AgileJapan2015
大規模スクラムの失敗から学んだこと #AgileJapan2015
 
情科若会2016公開用
情科若会2016公開用情科若会2016公開用
情科若会2016公開用
 
あなたのチームの「いい人」は機能していますか?
あなたのチームの「いい人」は機能していますか?あなたのチームの「いい人」は機能していますか?
あなたのチームの「いい人」は機能していますか?
 
SlideShare 101
SlideShare 101SlideShare 101
SlideShare 101
 

Similar to Redis Intro Osc2010 Tokyo Spring

RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成弘毅 露崎
 
はじめてのCouch db
はじめてのCouch dbはじめてのCouch db
はじめてのCouch dbEiji Kuroda
 
SocketStream入門
SocketStream入門SocketStream入門
SocketStream入門
Kohei Kadowaki
 
OpenStack + Common Lisp
OpenStack + Common LispOpenStack + Common Lisp
OpenStack + Common Lispirix_jp
 
Data processing at spotify using scio
Data processing at spotify using scioData processing at spotify using scio
Data processing at spotify using scio
Julien Tournay
 
AWS SDK for Smalltalk
AWS SDK for SmalltalkAWS SDK for Smalltalk
AWS SDK for Smalltalk
Sho Yoshida
 
RubyのDir、File、IO について
RubyのDir、File、IO についてRubyのDir、File、IO について
RubyのDir、File、IO について
Tomoya Kawanishi
 
Elasticsearch入門 pyfes 201207
Elasticsearch入門 pyfes 201207Elasticsearch入門 pyfes 201207
Elasticsearch入門 pyfes 201207
Jun Ohtani
 
CouchDB JP & BigCouch
CouchDB JP & BigCouchCouchDB JP & BigCouch
CouchDB JP & BigCouch
Yohei Sasaki
 
node+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作るnode+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作るKiyoshi SATOH
 
スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0Kiwamu Okabe
 
BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門
Yohei Sasaki
 
Nodejs
NodejsNodejs
MongoDB
MongoDBMongoDB
PaaSの作り方 Sqaleの場合
PaaSの作り方 Sqaleの場合PaaSの作り方 Sqaleの場合
PaaSの作り方 Sqaleの場合hiboma
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRuby
emasaka
 
Couchbase MeetUP Tokyo - #11 Omoidenote
Couchbase MeetUP Tokyo - #11 OmoidenoteCouchbase MeetUP Tokyo - #11 Omoidenote
Couchbase MeetUP Tokyo - #11 Omoidenote
kitsugi
 
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...Naoya Ito
 
What is Metasepi?
What is Metasepi?What is Metasepi?
What is Metasepi?
Kiwamu Okabe
 
zsh とわたし
zsh とわたし zsh とわたし
zsh とわたし
Toshihiko Shimokawa
 

Similar to Redis Intro Osc2010 Tokyo Spring (20)

RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成
 
はじめてのCouch db
はじめてのCouch dbはじめてのCouch db
はじめてのCouch db
 
SocketStream入門
SocketStream入門SocketStream入門
SocketStream入門
 
OpenStack + Common Lisp
OpenStack + Common LispOpenStack + Common Lisp
OpenStack + Common Lisp
 
Data processing at spotify using scio
Data processing at spotify using scioData processing at spotify using scio
Data processing at spotify using scio
 
AWS SDK for Smalltalk
AWS SDK for SmalltalkAWS SDK for Smalltalk
AWS SDK for Smalltalk
 
RubyのDir、File、IO について
RubyのDir、File、IO についてRubyのDir、File、IO について
RubyのDir、File、IO について
 
Elasticsearch入門 pyfes 201207
Elasticsearch入門 pyfes 201207Elasticsearch入門 pyfes 201207
Elasticsearch入門 pyfes 201207
 
CouchDB JP & BigCouch
CouchDB JP & BigCouchCouchDB JP & BigCouch
CouchDB JP & BigCouch
 
node+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作るnode+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作る
 
スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0
 
BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門
 
Nodejs
NodejsNodejs
Nodejs
 
MongoDB
MongoDBMongoDB
MongoDB
 
PaaSの作り方 Sqaleの場合
PaaSの作り方 Sqaleの場合PaaSの作り方 Sqaleの場合
PaaSの作り方 Sqaleの場合
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRuby
 
Couchbase MeetUP Tokyo - #11 Omoidenote
Couchbase MeetUP Tokyo - #11 OmoidenoteCouchbase MeetUP Tokyo - #11 Omoidenote
Couchbase MeetUP Tokyo - #11 Omoidenote
 
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
SmartPhone development guide with CoffeeScript + Node + HTML5 Technology, for...
 
What is Metasepi?
What is Metasepi?What is Metasepi?
What is Metasepi?
 
zsh とわたし
zsh とわたし zsh とわたし
zsh とわたし
 

Recently uploaded

Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 

Recently uploaded (7)

Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 

Redis Intro Osc2010 Tokyo Spring

  • 1. Redisをドキュメント指向DBとし て使う 2010/2/27(Sat) OSC 2010 Tokyo/Spring z.ohnami
  • 3. Redisの特徴 インメモリーなKVS ゆえに、高速 それでいて、データは永続化 4種類のデータ型 型ごとに豊富なAPIを備える
  • 5. 使ってみましょう Redisの起動  $ ./redis-server データ格納  $ ./redis-cli set name z.ohnami データを入手  $ ./redis-cli get name z.ohnami docフォルダにはHTMLドキュメントも充実!!
  • 6. Document-Oriented Database For example here's a document: FirstName="Bob", Address="5 Oak St.", Hobby="sailing". Another document could be: FirstName="Jonathan", Address="15 Wanamassa Point Road", Children=("Michael, 10", "Jennifer,8", "Samantha,5", "Elena,2"). Notice that both documents have some similar information and some different - but unlike a relational database where each record would have the same set of fields and unused fields might be kept empty, there are no empty 'fields' in either document (record) in this case. This system allows information to be added any time without wasting storage space for "empty fields" as in relational databases. From Wikipedia Document-Oriented Database http://en.wikipedia.org/wiki/Document-oriented_database
  • 7. Semi Structured Data ゆるーくデータを管理する
  • 8. CouchDBの場合 { {  _id:xxx,  _id:yyy, "なまえ":"まこと", "なまえ":"ぽったー", "せいべつ":"おとこ", "せいべつ":"おとこ", "しょくぎょう":"SE", "しょくぎょう": "とくぎ":["小走り","歯ぎしり"], ["SE","魔法使い"] "そうび":"{ "まほう":["JScript","bash"], "あたま":"めがね", "そうび":"{ "からだ":"桃色ニット", "あたま":"めがね", "あし":"ぞうり", "からだ":"くさりかたびら", "PC":"ネットブック" "あし":"ホーキンス", "PC":"MacBook Air", }" "そのた":"" } }" }
  • 11. set profile:1:name z.ohnami set profile:1:blood A set profile:1:age 30 set profile:2:name y.konami set profile:2:blood C++ set profile:2:height 140
  • 13. String型 $ ./redis-cli set OSC "OSC 2010 Tokyo/Spring" $ ./redis-cli get OSC OSC 2010 Tokyo/Spring
  • 14. 計算もできます $ ./redis-cli set cnt 0 $ ./redis-cli incr cnt (integer) 1 $ ./redis-cli incrby cnt 10 (integer) 11 $ ./redis-cli decrby cnt 10 (integer) 1 $ ./redis-cli decr cnt (integer) 0
  • 15. List型 $ ./redis-cli rpush msg "CouchDB" $ ./redis-cli rpush msg "MongoDB" $ ./redis-cli rpush msg "Redis" $ ./redis-cli rpush msg "Lotus/Domino" $ ./redis-cli lrange msg 0 3 1. CouchDB 2. MongoDB 3. Redis 4. Lotus/Domino
  • 16. Sets型 $ ./redis-cli sadd hobby:baseball z.ohnami $ ./redis-cli sadd hobby:swiming z.ohnami $ ./redis-cli sadd hobby:swiming y.ohnami $ ./redis-cli sadd hobby:swiming x.ohnami $ ./redis-cli sinter hobby:swiming 1. z.ohnami 2. y.ohnami 3. x.ohnami
  • 17. Sorted sets型 $ ./redis-cli zadd relax 120 マッサージ $ ./redis-cli zadd relax -20 二日酔い $ ./redis-cli zadd relax 50 爪切り $ ./redis-cli zadd relax -50 深爪 $ ./redis-cli zadd relax 100 お風呂 $ ./redis-cli zrange relax 0 -1 1. 深爪 2. 二日酔い 3. 爪切り 4. 風呂 5. マッサージ
  • 18. 使ってみての感想 ドキュメント指向DBとして使えそう アスタリスクでキーの検索可能 ./redis-cli keys profile:1:* 添付ファイルは格納できるか? 今回、未チェックです。。 はじめる際の敷居が低い インストールが楽でした APIも覚えやすいはず コードも少ないから学習にも