发布于 2016-07-31 22:07:23 | 138 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的Redis 设计与实现(第一版),程序狗速度看过来!

Redis Key-Value数据库

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。


这篇文章主要介绍了Redis02 使用Redis数据库(String类型)全面解析的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

一 String类型

首先使用启动服务器进程 :

redis-server.exe

1. Set

  设置Key对应的值为String 类型的value。

  例子:向 Redis数据库中插入一条数据类型为String 的记录。

  在客户端输入命令:


C:\software\redis\64bit>redis-cli.exe -h 127.0.0.1 -p 6379
redis 127.0.0.1:6379> set foo test
OK
redis 127.0.0.1:6379> get foo
"test" 

2.setnx

 设置key对应的值为string类型的value,如果key已经存在,返回0,nx是not exist的意思。命令简单的理解为: 设置一个key,如果可以key对应的值不存在才更新值。


redis 127.0.0.1:6379> setnx foo1 aaa
(integer) 1
redis 127.0.0.1:6379> get foo1
"aaa"
redis 127.0.0.1:6379> setnx foo1 bbb
(integer) 0 

3. setex

  设置key对应的值为string类型的value,并制定此键值对应的有效期。

例如:添加一个haircolor=red的键值对,并指定有效期为10秒。


redis 127.0.0.1:6379> setex haircolor 10 red
OK
redis 127.0.0.1:6379> get haircolor
"red"
redis 127.0.0.1:6379> get haircolor
(nil) 

4 setrange

设置指定key的value的子字符串

例如: 我们希望将 xpxiaowu的126邮箱替换为gmail邮箱。


redis 127.0.0.1:6379> set name abcde@126.com
OK
redis 127.0.0.1:6379> setrange name 6 gmail.com
(integer) 15
redis 127.0.0.1:6379> get name
"abcde@gmail.com" 

5.mset

  一次设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置。


redis 127.0.0.1:6379> mset key1 wangwu key2 lisi
OK
redis 127.0.0.1:6379> get key1
"wangwu"
redis 127.0.0.1:6379> get key2
"lisi" 

6.msetnx

一次设置多个key的值,成功返回ok,表示所有的值都设置了,失败返回0,表示没有没任何值被设置,但是不会覆盖已经存在的key.

如果有一个key没有设置成功,其他key都不会设置成功。


redis 127.0.0.1:6379> msetnx key1 aaa key2 bbb key3 ccc
(integer) 0
redis 127.0.0.1:6379> get key1
"wangwu"
redis 127.0.0.1:6379> get key2
"lisi"
redis 127.0.0.1:6379> get key3
(nil)
redis 127.0.0.1:6379> msetnx key3 aaa key4 bbb key5 ccc
(integer) 1
redis 127.0.0.1:6379> get key1
"wangwu"
redis 127.0.0.1:6379> get dkey2
(nil)
redis 127.0.0.1:6379> get key3
"aaa"
redis 127.0.0.1:6379> get key4
"bbb"
redis 127.0.0.1:6379> get key5
"ccc"

7. get 获得可以对应得string 值,如果key不存在返回nil .

getset 设置key的值,并返回key 的旧值。

getrange

获取key对应的value值的子字符串。

getrange name 0 5
mget

一次获取多个key的值,如果对应key不存在则对应返回nil.

redis 127.0.0.1:6379> mget key1 key2 key3 key4 key5

1) "wangwu"
2) "lisi"
3) "aaa"
4) "bbb"
5) "ccc"

8. incr

对key的值做加加操作,并返回新的值。

incrby

同incr 类似,加指定值,key 不存在时候回设置key,并认为原来的value是0.


redis 127.0.0.1:6379> set key6 0
OK
redis 127.0.0.1:6379> get key6
"0"
redis 127.0.0.1:6379> incr key6
(integer) 1
redis 127.0.0.1:6379> set key7 1
OK
redis 127.0.0.1:6379> get key7
"1"
redis 127.0.0.1:6379> incrby key7 5
(integer) 6
redis 127.0.0.1:6379> get key7
"6"

  decr

 对key的值做减减操作。

decrby

同decr类似,减指定值。

9. append

给指定key的字符串追加value,返回新字符串值的长度。


redis 127.0.0.1:6379> get key6
"1"
redis 127.0.0.1:6379> append key6 @163.com
(integer) 9
redis 127.0.0.1:6379> get key6
1@163.com

以上所述是小编给大家介绍的Redis02 使用Redis数据库(String类型)全面解析,希望对大家有所帮助,如果大家想了解更多内容,敬请关注phperz!



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务