/R/strValCMD.R

http://github.com/bwlewis/rredis · R · 68 lines · 54 code · 10 blank · 4 comment · 7 complexity · 8335d6d2a3d812cecd39d699a558179c MD5 · raw file

  1. # This file contains functions that operate on Redis 'string' values.
  2. redisGet <- function(key, ...)
  3. {
  4. .redisCmd(.raw('GET'), .raw(key), ...)
  5. }
  6. redisSet <- function(key, value, NX=FALSE)
  7. {
  8. value <- .cerealize(value)
  9. cmd <- 'SET'
  10. if(NX) cmd <- 'SETNX'
  11. .redisCmd(.raw(cmd), .raw(key), value)
  12. }
  13. redisGetSet <- function(key, value, ...)
  14. {
  15. .redisCmd(.raw('GETSET'),.raw(key),value, ...)
  16. }
  17. redisMGet <- function(keys, ...)
  18. {
  19. keylist <- as.list(keys)
  20. x <- do.call('.redisCmd',c(lapply(c(list('MGET'),keylist),charToRaw),...))
  21. # The following may not occur, for example within a transaction block:
  22. if(length(x) == length(keylist)) names(x) <- keylist
  23. x
  24. }
  25. redisMSet <- function(keyvalues, NX=FALSE, ...)
  26. {
  27. # Includes a significant performance improvement contributed
  28. # by William Pleasant.
  29. if (0L == length(keyvalues))
  30. return(NULL)
  31. if (NX) cmd <- 'MSETNX' else cmd <- 'MSET'
  32. a <- list(.raw(cmd))
  33. j <- 2L * seq_along(keyvalues)
  34. a[j + 1L] <- keyvalues # extends a
  35. a[j] <- lapply(names(keyvalues), charToRaw)
  36. a <- c(a, ...)
  37. do.call('.redisCmd', a)
  38. }
  39. redisIncr <- function(key)
  40. {
  41. .redisCmd(.raw('INCR'),.raw(key))
  42. }
  43. redisIncrBy <- function(key, value)
  44. {
  45. .redisCmd(.raw('INCRBY'),.raw(key),.raw(as.character(value)))
  46. }
  47. redisIncrByFloat <- function(key, value)
  48. {
  49. .redisCmd(.raw('INCRBYFLOAT'),.raw(key),.raw(as.character(value)))
  50. }
  51. redisDecrBy <- function(key, value)
  52. {
  53. .redisCmd(.raw('DECRBY'),.raw(key),.raw(as.character(value)))
  54. }
  55. redisDecr <- function(key)
  56. {
  57. .redisCmd(.raw('DECR'),.raw(key))
  58. }