list类型操作
- #从数组左边插入数据
- redisLPush('a',1)
- redisLPush('a',2)
- redisLPush('a',3)
- #显示从数组左边0-2的数据
- redisLRange('a',0,2)
- [[1]]
- [1] 3
- [[2]]
- [1] 2
- [[3]]
- [1] 1
- #从数据左边弹出一个数据
- redisLPop('a')
- [1] 3
- #显示从数组左边0-(-1)的数据
- redisLRange('a',0,-1)
- [[1]]
- [1] 2
- [[2]]
- [1] 1
- #从数组右边插入数据
- redisRPush('a','A')
- redisRPush('a','B')
- #显示从数组左边0-(-1)的数据
- redisLRange('a',0,-1)
- [[1]]
- [1] 2
- [[2]]
- [1] 1
- [[3]]
- [1] "A"
- [[4]]
- [1] "B"
- #从数据右边弹出一个数据
- redisRPop('a')
set类型操作
- redisSAdd('A',runif(2))
- redisSAdd('A',55)
- #显示对象有几个元素
- redisSCard('A')
- [1] 2
- #列表显示set对象元素
- redisSMembers('A')
- [[1]]
- [1] 55
- [[2]]
- [1] 0.6494041 0.3181108
- redisSAdd('B',55)
- redisSAdd('B',rnorm(3))
- #显示对象有几个元素
- redisSCard('B')
- [1] 2
- #列表显示set对象元素
- redisSMembers('B')
- [[1]]
- [1] 55
- [[2]]
- [1] 0.1074787 1.3111006 0.8223434
- #差集
- redisSDiff(c('A','B'))
- [[1]]
- [1] 0.6494041 0.3181108
- #交集
- redisSInter(c('A','B'))
- [[1]]
- [1] 55
- #并集
- redisSUnion(c('A','B'))
- [[1]]
- [1] 55
- [[2]]
- [1] 0.1074787 1.3111006 0.8223434
- [[3]]
- [1] 0.6494041 0.3181108
rredis与redis-cli交互
redis客户端插入数据,rredis读取数据
- #打开redis客户端
- ~ redis-cli
- redis 127.0.0.1:6379> set shell "Greetings, R client!"
- OK
- redisGet('shell')
- [1] "Greetings, R client!"
rredis插入数据,redis客户端读取数据
- #插入数据
- redisSet('R', 'Greetings, shell client!')
- [1] "OK"
- #读取数据(有乱码)
- redis 127.0.0.1:6379> get R
- "X\\x00\x00\x00\x02\x00\x02\x0f\x00\x00\x02\x03\x00\x00\x00\x00\x10\x00\x00\x00\x01\x00\x04\x00\\x00\x00\x00\x18Greetings, shell client!"
转型以数组方式存储(charToRaw)
- redisSet('R', charToRaw('Greetings, shell client!'))
- [1] TRUE
- #正常读取数据
- redis 127.0.0.1:6379> get R
- "Greetings, shell client!"
第四章 rredis测试案例
测试案例的需求:
读入一个数据文件,从左到右分别是用户id,口令,邮箱,在redis里建立合适的数据模型,并将这些数据导入到redis。
文字说明部分:
首先,定义数据模型:
KEY:
users:用户id
VALUE:
id:用户id
pw:口令
email:邮箱
R语言读入数据文件。
然后,建立redis连接,以循环方式插入数据。
以users:wolys为KEY,输出对应用的VALVE值。
代码部分
- #读入数据
- data<-scan(file="data5.txt",what=character(),sep=" ")
- data<-data[which(data!='#')]
- > data
- [1] "wolys" "wolysopen111" "wolys@21cn.com"
- [4] "coralshanshan" "601601601" "zss1984@126.com"
- [7] "pengfeihuchao" "woaidami" "294522652@qq.com"
- [10] "simulategirl" "@#$9608125" "simulateboy@163.com"
- [13] "daisypp" "12345678" "zhoushigang_123@163.com"
- [16] "sirenxing424" "tfiloveyou" "sirenxing424@126.com"
- [19] "raininglxy" "1901061139" "lixinyu23@qq.com"
- [22] "leochenlei" "leichenlei" "chenlei1201@gmail.com"
- [25] "z370433835" "lkp145566" "370433835@qq.com"
- [28] "cxx0409" "12345678" "cxx0409@126.com"
- [31] "xldq_l" "061222ll" "viv093@sina.com"
- #连接redis连接
- redisConnect(host="192.168.1.101",port=6379)
- redisFlushAll()
- redisKeys()
- #循环插入数据
- id<-NULL
- for(i in 1:length(data)){
- if(i %% 3 == 1) {
- id<-data[i]
- redisSAdd(paste("users:",id,sep=""),paste("id:",id,sep=""))
- } else if(i %% 3 == 2) {
- redisSAdd(paste("users:",id,sep=""),paste("pw:",data[i],sep=""))
- } else {
- redisSAdd(paste("users:",id,sep=""),paste("email:",data[i],sep=""))
- }
- }
- #列出所有的KEY
- redisKeys()
- [1] "users:cxx0409" "users:sirenxing424" "users:simulategirl" "users:xldq_l"
- [5] "users:coralshanshan" "users:raininglxy" "users:pengfeihuchao" "users:leochenlei"
- [9] "users:daisypp" "users:wolys" "users:z370433835"
- #通过KEY查询VALUE
- redisSMembers("users:wolys")
- [[1]]
- [1] "pw:wolysopen111"
- [[2]]
- [1] "email:wolys@21cn.com"
- [[3]]
- [1] "id:wolys"
- #关闭redis连接
- redisClose()
完成测试案例。
数据文件:data5.txt
- wolys # wolysopen111 # wolys@21cn.com
- coralshanshan # 601601601 # zss1984@126.com
- pengfeihuchao # woaidami # 294522652@qq.com
- simulategirl # @#$9608125 # simulateboy@163.com
- daisypp # 12345678 # zhoushigang_123@163.com
- sirenxing424 # tfiloveyou # sirenxing424@126.com
- raininglxy # 1901061139 # lixinyu23@qq.com
- leochenlei # leichenlei # chenlei1201@gmail.com
- z370433835 # lkp145566 # 370433835@qq.com
- cxx0409 # 12345678 # cxx0409@126.com
- xldq_l # 061222ll # viv093@sina.com
原文链接:http://cos.name/2013/04/nosql-r-redis/
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。