Nosql数据库——redis(三)数据类型

  上节课还有点小的内容那就是我们的redis配置文件。Redis的主要配置文件是redis.config.

 1.      配置文件redis.config

  上节课我们在window系统下面启动了redis,服务端如下图:


  在没有建立相应的客户端的时候,此时的连接是0,当我们启动一个客户端连接的时候此时为1,但是此时出现是暂用session也就是前台在运行,那么使得其在后台进行运行呢?

  这就用到了我们的配置文件redis.config,修改其中的配置项daemonize。默认情况下是no,现在改为yes。再次启动服务。此时默认是以守护模式或者是后台的运行模式在运行。

  那我们来看一下配置文件中还有那些参数。

几个比较常见的:

  Daemonize:默认情况下是0,也就是默认不是以守护进程的方式运行,可以手动修改为yes,使得其在后台进行运行。

  Pidfile:配置多个pid的地址,默认在/var/run/redis.pid,这个配置指定了pid的位置。

  bind:绑定ip,设置后只接受来自该ip的请求,也就是绑定主机的地址。

  Port:监听端口,,默认为6379,为什么是6379呢?作者解释了选用6379作为默认端口,是因为6379在手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字。

  Timeout:设置客户端连接时的超时时间,单位为秒。

  Loglevel:分为4级,debug,verbose,notice,warning,默认情况下是verbose。

  Logfile:配置log文件的地址,日志记录方式,默认为标准输出,如果配置Redis为守护进程方式运行,而这里又配置为日志记录方式为标准输出,则日志将会发送给/dev/null。

  Databases:设置数据库的个数,默认使用的数据库为0,设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id,一共可以连接的为16个,默认的索引从0开始,到15,共16个。

  Save:设置redis进行数据库镜像的频率。指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合,save <seconds> <changes>

  配置文件中的设置,分别表示的是900秒内有一个更改,300秒内有10个更改,60秒内有10000个更改。


  其他不做详细讲解,具体可以上网查相应的资料。

 2.      数据类型

  Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。这是与memcached的不同,之后我们会进行memcached的讲解。

  String(字符串)

  string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。

  string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。string类型是Redis最基本的数据类型,一个键最大能存储512MB。

  开启服务端,同时创建一个与服务端交互的客户端连接。

  常见的操作包括:

  Set (setname xiaona -----设置key对于的value)

  Get(getname------根据key取值)


  值得注意的是:再次设置如果键一样,则多次设置的时候会覆盖之前的值,取最后一次设置的值,如上图所示。

  初次还有的操作方法有:

   Setnx:同样是设置键值,但是可以判断是否已经存在,存在返回0,这样就不会覆盖之前的值

   Setex:设置键值,指定键值的失效日期(setex mydream 20 sing----------添加mydream=sing,有效期20s)

   Setrange:更改信息(setrange mydream 3 ger-----修改设置的值,3表示从第一个开始,默认第一个索引为0)

   ps: 此时出现的现象是如果替换的没有原字符长,则会把剩余进行补充,但是如果比之前的长,那么直接采用现在替换后的字符串。

   Mset:批量设置,一次设置多个key值,成功返回ok,失败返回0表示没有任何值被设置。

   Msetnx表示批量设置是否存在的检查更新,一次设置多个值,都设置返回ok,否则返回0表示没有设置成功。不会覆盖已经存在的key。

   Getset:获取旧值设置新值。

   与set同时存在是get方法,此时不再做详细的介绍。Get方法有(通过键获取值):getrange,mget……。

此外存在就是对于值的一些额外的操作:incr 自增命令(指定相应的值的键即可),Incrby可以设置自增的跨度,也就是不是一个个的递增,可以设置相应的递增值。Append是追加字符,strlen是获取字符串长度。

  Hash

  Redis 的hash是一个string类型的field和value的映射表。它的添加、删除操作都是0(1)(平均),hash特别适合用于存储对象。相较于将对象的每个字段存成单个的string类型。将一个对象存储在hash中类型中会占用更少的内存,并且可以方便的存储整个的对象。

      我们列出几个常用的方法(我以window环境进行操作)。具体操作:

  hset :设置hash field为指定值,如果key不存在,则先创建。(hget是获取)


  注意:User:001是一个用户id为001的表,可以看出一个整体。

  同理string,hashset也是存在nx命令,即hsetnx,这里不再演示。

  Hmset是批量设置。Hget是获取单个,hmget是批量获取


  同理string,也是存在自增的方法,这里是hincrby。此外还有其他的一些方法:hexists测试指定的field是否存在。hlen返回指定hash的field的数量,hdel是删除hash中的某个field,hkey返回hash中的所有的field,hvalues返回hash中所有的value。Hgetall返回某个hash中的所有的field和value。

  我们先介绍到这里,下篇我们接着介绍其他的三种类型~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值