上节课还有点小的内容那就是我们的redis配置文件。Redis的主要配置文件是redis.config.
@H_403_6@ 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个更改。
其他不做详细讲解,具体可以上网查相应的资料。
@H_403_6@ 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。
我们先介绍到这里,下篇我们接着介绍其他的三种类型~
原文链接:https://www.f2er.com/nosql/203798.html