导航

Redis 对String数据类型的操作

Posted on 2014-02-12 15:47  蝈蝈俊  阅读(461)  评论(0编辑  收藏  举报

Redis的 Strings 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字。使用Strings类型,你可以完全实现目前 Memcached 的功能,并且效率更高。还可以享受Redis的定时持久化,操作日志及 Replication等功能。除了提供与 Memcached 一样的get、set、incr、decr 等操作外,Redis还提供了下面一些操作:

  • 获取字符串长度
  • 往字符串append内容
  • 设置和获取字符串的某一段内容
  • 设置及获取字符串的某一位(bit)
  • 批量设置一系列字符串的内容

Redis能存储二进制安全的字符串,最大长度为1GB

127.0.0.1:6379> set name "郭红俊"
OK
127.0.0.1:6379> get name
"\xe9\x83\xad\xe7\xba\xa2\xe4\xbf\x8a"
127.0.0.1:6379> set name "ghj1976"
OK
127.0.0.1:6379> get name
"ghj1976"

 

String类型还支持批量的读写操作

[root@localhost src]# ./redis-cli
127.0.0.1:6379> mset age 31 sex "male"
OK
127.0.0.1:6379> mget age
1) "31"
127.0.0.1:6379> mget age sex
1) "31"
2) "male"
127.0.0.1:6379> get age
"31"
127.0.0.1:6379> del age
(integer) 1
127.0.0.1:6379> mget age sex
1) (nil)
2) "male"
127.0.0.1:6379>

String类型其实也可以用来存储数字,并支持对数字的加减操作。

 

127.0.0.1:6379>
127.0.0.1:6379> incr age
(integer) 1
127.0.0.1:6379>
127.0.0.1:6379> get age
"1"
127.0.0.1:6379> incrby age  5
(integer) 6
127.0.0.1:6379> get age
"6"
127.0.0.1:6379> decr age
(integer) 5
127.0.0.1:6379> get age
"5"
127.0.0.1:6379> decrby age 3
(integer) 2
127.0.0.1:6379> get age
"2"
127.0.0.1:6379> del age
(integer) 1
127.0.0.1:6379> get age
(nil)

说明:

incr 命令给某个变量加一,如果这个变量不存在,则首先建立,使用默认值0,然后加一后是1, 如上面代码。如果这个变量存在,则直接加一。

127.0.0.1:6379> set aa 45
OK
127.0.0.1:6379> get aa
"45"
127.0.0.1:6379> incr aa
(integer) 46
127.0.0.1:6379> get aa
"46"
127.0.0.1:6379> set bb ghh
OK
127.0.0.1:6379> get  bb
"ghh"
127.0.0.1:6379> incr bb
(error) ERR value is not an integer or out of range
127.0.0.1:6379>

 

String类型还支持对其部分的修改和获取操作

 

 

127.0.0.1:6379> set name 郭红俊
OK
127.0.0.1:6379> get name
"\xe9\x83\xad\xe7\xba\xa2\xe4\xbf\x8a"
127.0.0.1:6379> append name "ddd."
(integer) 13
127.0.0.1:6379> get name
"\xe9\x83\xad\xe7\xba\xa2\xe4\xbf\x8addd."
127.0.0.1:6379> strlen name
(integer) 13
127.0.0.1:6379> substr name 0 3
"\xe9\x83\xad\xe7"
127.0.0.1:6379> substr name 0 2
"\xe9\x83\xad"

 

 

更多字符串使用命令参考:

http://www.redisdoc.com/en/latest/string/index.html 

redis 全部命令请看:

http://www.redisdoc.com/en/latest/index.html 

 

简单统计命令如下:

127.0.0.1:6379> dbsize
(integer) 2
127.0.0.1:6379>
127.0.0.1:6379> keys *
1) "sex"
2) "name"
127.0.0.1:6379>

 

dbsize 返回目前存储的数量。

keys 返回满足查询表达式的所有key  keys * 是全部