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

redis复习(一):基本知识点----安装、基本数据类型和相关操作

2017-10-02 18:42 591 查看
一:redis的安装:

在/usr/local/下解压redis的安装包。

在安装之前需要c++的编译环境,可以yum -y install gcc-c++安装c++的编译环境。

进入解压之后的redis目录,make命令进行编译,再进入src目录 make install测试安装

贼/usr/local目录下创建目录 : mkdir -p  /usr/local/redis/etc和 mkdir -p /usr/local/redis/bin mkdir -p /usr/local/redis/data

进入redis的解压目录,将redis.conf 配置文件复制到新创建的etc目录下,cp redis.conf /usr/local/redis/etc

进入解压目录src下,执行命令 mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server /usr/local/redis/bin/命令将一些文件移动到bin目录中。

修改etc下的redis.conf文件,修改参数daemonize no为daemonize yes设置启动时后台启动,修改dir ./为dir为/usr/local/redis/data,这个参数的路径为数据存放文件的位置,可以根据自己的喜好改。

启动redis服务(根据配置文件启动): /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf 

查看redis是否启动成功:执行如下命令查看进程(redis默认端口是6379):



redis启动成功,使用命令/usr/local/redis/bin/redis-cli启动redis客户端连接服务:



至此:redis单机版搭建完成。

二:redis数据类型

五种:string,hash,list,set,sortedset。

说下命令行端设置值得方式,并非java客户端。java客户端需要使用redis提供的客户端jedis

1.String:包含多种类型的特殊类型,并且是二进制安全的,比如可以存储序列化的对象,图片二进制,数值,简单字符串等等。

设置值:set name(key) value;取值:get name (同一个name设置多次会被覆盖);删除:del name

setnx name value:name存在不设置,不存在设置

setex name time value:设置值得同时设置有效期,过期返回nil,redis中nil表示空:如 setex color 10 red;10秒后过期

相关操作如下图:



使用setrange替换字符串:如下



5表示从值得第几位开始替换,后面跟上替换的字符串,如果位数大于值得长度,会用\x00补位,这里表示空格。

使用mset一次性设置多个键值,mget一次性获取多个键的值。



incr 自增1,decr减1,也可以设置步长,后面再说



incrby和decrby设置步长定增定减,步长可以是负数,就变成减了

append [name] 方法追加字符串

strlen 获得长度:如下图



2.Hash:hash是String类型的field和value的映射表,或者说是String集合,它特别适合存储对象,相比较而言,hash类型存储对象比String的存储要占用更少的空间,

并更加方便。

刑如 hset myhash filed1 value:myhash是集合名字,field1是字段即key的值,value就是字段对应的值,使用hget
myhash field1获取值。同时可以使用hmset和hmget

设置和获取多个键值对。同时也有hsetnx和hsetex等,大同小异;hincrby递增和递减,hexists是否存在key,存在返回1不存在返回0;hlen返回集合中所有键数值,

hdel 删除指定hash的field,hkeys返回集合中所有的键值,hvals返回集合中所有的value值,hgetall返回集合中所有的键值。



3.list:redis中list就相当于一个链表,不过这个链表是双端链表,什么是双端,就是插入元素可以选择左边加也可以选择右边加,lpush方法表示左边加,先进后出,相当于栈,rpush从右边加,先进先出,linset:插入元素,指定元素前后。lrange name 0 -1 :从第0个位置开始找,找不到为止,返回链表集合元素。list可存储重复元素

lrem [lrem key count value] :移除等于value的元素,当count>0时,从表头开始查找,移除count个;当count=0时,从表头开始查找,移除所有

等于value的;当count<0时,从表尾开始查找,移除|count| 个。

修改:lset [lset
key index value] : 设置列表指定索引的值,如果指定索引不存在则报错

查询:lindex [lindex key index]:通过索引index获取列表的元素、key>=0从头到尾,key<0从尾到头

如下:







ltrim:保留指定key的值范围内的数据

lpop:从从头部开始删除元素,并返回指定元素

rpop:从尾部开始删除元素并返回



4.set:set是string类型的无序集合,不可存储重复元素,set是通过hashtable实现的,对集合我们可以使用交集并集和查济。

sadd添加元素,smembers查看元素个数,srem删除,spop随机返回删除的key。sdiff返回两个集合不同的元素(以前面的集合为标准)

setdiffstore:将返回的不同的元素存储到另外一个集合当中。





smove:元素从一个集合移动到另一个集合中,相当于剪切粘贴

scard:查看集合中元素个数

sismember:判断某元素是否为集合中元素,是返回1,不是返回0

srandmember:随机返回集合中的一个元素

5.sortedset也叫zset,是一个有序的set集合。

zadd添加元素,如果存在,更新元素顺序

zrem删除

zincrby:自增或自减

zrangebyscore:查找指定区间范围内的数据并返回:zrangebyscore
myzset 2 3 withscores

zremrangebyrank:删除1到1(只删除索引1)

zremrangebyscore:删除指定序号

zrank:返回升序排列索引

zrevrank:返回降序排列索引

zcard:集合个数

zcount:返回集合在指定区间的个数:如
zcount myzset 1 4
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  redis