NoSQL之Redis对string数据类型的操作

原创 2013年12月01日 21:03:47

一、简介

  String是最简单的数据类型,一个Key对应一个Value,String类型是二进制安装的。Redis的string可以包含任何数据,比如jpg图片或者序列化的对象。

1.set key value:设置key对应的值为string类型的value,返回值ok

127.0.0.1:6379> set mykey 'this is a sting'
OK

这样就想当于设置了mykey='this is a string'的键值对。set是可以重新设置的,也就是说我如果再执行set mykey 'this is another string'那么后面的值会覆盖前面的值。

2.get key:获取key键对应的string value:

127.0.0.1:6379> get mykey
"this is a string"

这样就获取了刚才我们设置的mykey对应的value 值为'this is a string'

3.setnx key value:只对不存在的key设置对应的value值,如果key已经存在那么设置不成功返回integer 0,nx是not exist的意思。如果key不存在那么设置成功返回integer 1

127.0.0.1:6379> setnx mykey 'this is mykey value'
(integer) 0

说明设置不成功,这个时候我们再用get mykey

127.0.0.1:6379> get mykey
"this is a string"

可以看到还是之前的值,并没有变化。那么我们用setnx mykey1 ‘this is mykey1 value'看看是什么情况,mykey1是之前没有设置过的

127.0.0.1:6379> setnx mykey1 'this is mykey1 string value'
(integer) 1

127.0.0.1:6379> get mykey1
"this is mykey1 string value"

很明显mykey1设置成功了。

4.setex key value:设置key对应的值为string类型的value,并指定此键值对应的有效期。

127.0.0.1:6379> setex boyname 10 joker
OK

上面语句的意思是我设置了一个键值为boyname的value为joker,并且10后过期,那么我get boyname回获取到10秒,但是10秒之后就会返回(nil)这个代表redis里的空字符串。

set boyname joker如果没有设置有效期,代表永久有效。

5.setrange key value start childstring:设置指定key的value的子字符串。从start开始,设置长度为length

127.0.0.1:6379> set email test@163.com
OK
127.0.0.1:6379> get email
"test@163.com"
127.0.0.1:6379> setrange email 5 gmail.com
(integer) 14
127.0.0.1:6379> get email
"test@gmail.com"

上面的命令首先设置email为test@163.com然后把163.com替换为 gmail.com

6.mset key1 value1 key2 value2 key3 value3 .........:一次设置多个key值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置。

127.0.0.1:6379> mset key1 value1 key2 value2 key3 value3
OK

127.0.0.1:6379> get key1
"value1"

同样用mset再次设置kye1 key2 key3的值,会覆盖前面的值。

127.0.0.1:6379> mset key1 newvalue1 key2 newvalue2 key3 newvalue3
OK

127.0.0.1:6379> get key1
"newvalue1"

7.msetnx key1 value1 key2 value2 key3 value3 ......:一次设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置,但是不会覆盖已经存在的可以值

127.0.0.1:6379> msetnx key1 value1 key2 value2 key4 value4
(integer) 0

因为key1 key2之前被设置过,所以失败

127.0.0.1:6379> msetnx key4 value4 key5 value5
(integer) 1

key4 key5都没有设置过,所以成功

8.getset key value:设置一个新值,并且返回旧值。

127.0.0.1:6379> get key4
"value4"
127.0.0.1:6379> getset key4 newvalue4
"value4"
127.0.0.1:6379> get key4
"newvalue4"

上面的命令首先获取key4原来的值为value4,用getset设置key4新值为newvalue4,同时返回了旧值value4。用完getset命令之后再用get获取key4为新值newvalue4.

9.getrange key start end:获取key的子字符串,从start开始到end结束

127.0.0.1:6379> getrange key4 1 3
"ewv"

10.mget key1 key2 key3...:批量获取

127.0.0.1:6379> mget key1 key2 key3
1) "test1"
2) "test2"
3) "test3"

11.incr key : 自增

127.0.0.1:6379> set num 2
OK
127.0.0.1:6379> incr num
(integer) 3
127.0.0.1:6379> get num
"3"

12.decr key : 自减

127.0.0.1:6379> decr num
(integer) 2
127.0.0.1:6379> get num
"2"

13 .incrby key count:以指定的count数进行自增

127.0.0.1:6379> incrby num 10
(integer) 12
127.0.0.1:6379> get num
"12"

14.decrby key count:以指定的count数进行自减

127.0.0.1:6379> decrby num 2
(integer) 10
127.0.0.1:6379> get num
"10"

15.append key childstring:给指定key的value追加childstring

127.0.0.1:6379> get key1
"test1"
127.0.0.1:6379> append key1 test2
(integer) 10
127.0.0.1:6379> get key1
"test1test2"

key1原来的值为test1,用append方法追加之后变成了test1test2。append的结果返回是追加后的字符串长度。

15.strlen key:获取key对应value字符串的长度

127.0.0.1:6379> strlen key1
(integer) 10

java 对redis几种数据类型的基本操作

常用命令:     1)连接操作命令     quit:关闭连接(connection)     auth:简单密码认证     help cmd: 查看cmd帮助,例如:help q...
  • datoucang
  • datoucang
  • 2016年11月24日 17:29
  • 345

Redis数据类型及其操作

简介 redis默认端口是6379,自定义端口使用:reids-server –port 6380 关闭redis。在关闭redis前考虑到可能正在将内存中的数据同步到磁盘,强行关闭redis有...
  • Bactryki28
  • Bactryki28
  • 2016年10月19日 16:23
  • 2471

java对redis各种数据类型的基本操作

一、key的基本操作 private void KeyOperate() { System.out.println("======================ke...
  • qiqizhiyun
  • qiqizhiyun
  • 2015年11月06日 18:29
  • 4879

NoSql——redis(高级操作)

redis nosql 主从复制 持久化 发布订阅
  • zllaptx4869
  • zllaptx4869
  • 2015年08月31日 16:00
  • 631

NoSQL数据库memcache和redis区别()

在web后台发开面试中,经常会被问道memcache和redis的区别和使用情况。 其中memcache和redis都是基于内存存储的缓存系统,存储形式key--value键值对的形式。 区别: (1...
  • qq_21034239
  • qq_21034239
  • 2017年01月17日 20:38
  • 1443

Nosql学习之Redis资料(一)

一、简介:      在过去的几年中,NoSQL数据库一度成为高并发、海量数据存储解决方案的代名词,与之相应的产品也呈现出雨后春笋般的生机。然而在众多产品中能够脱颖而出的却屈指可数,如Redis...
  • zhouqinghe24
  • zhouqinghe24
  • 2013年06月09日 12:10
  • 7521

Redis常用命令(String数据类型的操作)

为了方便操作这里可以下载Redis的Windows 64位的版本 下载地址:http://download.csdn.net/detail/u010180738/9667899Redis是目前非常流...
  • u010180738
  • u010180738
  • 2017年02月20日 23:33
  • 678

【NoSql】Redis实践篇-简单demo实现(一)

Redis是一个key-value存储系统。Redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用      Redis是一个...
  • hejingyuan6
  • hejingyuan6
  • 2015年08月13日 08:25
  • 4809

redis 五种数据类型的使用场景

这一篇文章详细分析了redis五中数据类型,很值得学习,在此转载一下,感谢原作者的无私分享!!  转载地址:http://blog.csdn.net/gaogaoshan/artic...
  • Tim_phper
  • Tim_phper
  • 2016年07月12日 17:42
  • 991

NoSQL之Redis对数据类型hash的操作

一、简介 Redishash是一个string类型的field和value的映射表。它的添加、删除操作都是O(1)(平均)。hash特别适合存储对象,将一个对象存储在hash类型中会占用更少的内存,并...
  • liutingxu1
  • liutingxu1
  • 2013年12月02日 08:48
  • 669
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NoSQL之Redis对string数据类型的操作
举报原因:
原因补充:

(最多只允许输入30个字)