您的位置:首页 > 数据库 > Redis

初识redis之常用String与Hash命令

2015-11-13 10:51 633 查看
随着NoSQL的不断壮大,作为一个java程序员,为了更好的发展,老夫也不得不学NoSQL数据库了,因为项目中使用过redis,所以就从redis这个角度打开NoSQL的大门吧。

首先介绍下,我是根据兄弟连的视频学习的,虽然之前java项目中使用过,但是也是java代码直接写的,不能说了解这个数据库的底层东西,这次来个系统全面的学习。

对于redis的安装,确实很简单,因为我很懒,所有不想装虚拟机,不想装linux,所有只好去别人github上偷了一份windows版本的redis,本篇最后有我的百度云盘分享链接。解压了就能用,so easy。

说下redis,这玩意执行很快,可以做缓存,用于解决高并发下读写关系型数据库搞不定这种事情。因为不是关系型的,所以没有表,都是用数据结构类型存储的,redis的五个数据结构:String,hash,list,set,zset( 我英文还可以,翻译一下吧,分别是字符串,哈希,链表,集合,有序集合)

下面就说命令吧,根据我学习笔记摘录的一些:

首先启动服务的命令是:redis-server.exe redis.conf,这里说一下,说好的把redis.conf的daemonize设置为yes就可以后台启动的,我这windows版本怎么设置了也不能后台启动啊,真是坑。只能开一个服务端命令窗口一个客户端命令窗口玩了。然后启动客户端,我的是本地的,所以是: redis-cli.exe
-h 127.0.0.1 -p 6379

然后下面是我总结的String类型和Hash类型的命令大全,写的比较详细了,我就CTRL+V了哈:

String:用来存放字段或者序列化字符
key-value 二进制安全
方法:
set 设置 ( set key1 lilei)
setnx 不存在该key则set,否则返回0,成功返回1 (setnx key1 lixiao)
setex 设置有效期的set ( setex key3 2 huahua)设置两秒的
setrange 设置指定key的value值的子字符串 (setrange key1 2 xila从第3个字符开始替换)
mset 批量设置 (mset key2 lilei key3 huahua)
msetnx 批量设置不存在key的键值对,只要有一个存在就全部失败返回0
get 获取
getset 设置key的值并获取旧值( getset key1)
getrange 获取value的子字符(getrange key1 0 2)
mget 批量获取,如果有一个不存在,则其对应的值nil
incr 对对应的key进行递加操作 incr age=age++;
incrby 设置递增幅度
decr decrby 自减(跟增加可以混用,可以设置负数)
append 给指定key追加字符,并返回新字符串长度
strlen 获取key对应的value的长度
hashes:存放对象可以占用更少内存,适合存放对象(对象可以看做表)
方法:
hset key field1 value1 (设置对象key ,字段field1为value1(只能一个字段一个字段设置))
hget key field(获取对象key中field字段的值)
hsetnx (类似String方式)
hmset(批量设置多个字段 hmset person name jeyson age 18)
hmget(批量获取所有键: hmget person name age)
hincrby(对某个字段进行自增,可以为负数 hincrby person age -2)
hexists(某个字段是否存在 存在返回1,hexists person age)
hlen (摸个对象字段数量,hlen person)
hdel person age(删除person对象的age字段)
hkeys person (person对象的所有字段名称)
hvals person (person对象所有字段的值)
hgetall person(获取person对象所有的字段和值)

OK,下面是redis的windows版本链接:链接:http://pan.baidu.com/s/1kTo49AR 密码:5tgy

直接解压后把对应版本放到你想放的目录下,命令行切换到redis目录下就行,非常简单。如果还是不会的话,好吧,这里给你一个链接(http://www.cnblogs.com/linjiqin/archive/2013/05/27/3101694.html,跟着一步一步走吧)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: