更新中...
目录
更新中...
一、安装
二、基础
三、Redis常用5大数据类型
四、常用指令
Redis键(key)
Redis字符串(String)
Redis列表(List)
Redis集合(Set)
Redis哈希(Hash)
Resis集合Zset(sorted set)
一、安装
1,一般软件包在/opt目录下,所以先cd /opt目录
2,下载安装包到opt目录,并解压
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
tar xzf redis-5.0.3.tar.gz
3, 进入 redis-5.0.3目录,执行make命令(已经安装gcc编译器前提下)
cd redis-5.0.3
make
4,make完执行make install安装
5,进入cd /usr/local/bin目录可以看到生成的文件
6,在/目录下创建myredis目录来存储redis.conf文件
7,去opt目录下的redis目录中备份redis.conf文件,不影响源文件
8,修改myredis目录下的redis.conf配置文件
改no为yes,这样控制台关闭还会在后台运行
9,查看进程,否有启动redis
方式一:如下图还未启动
方式二: lsof -i:6379
如图未启动
10,redis-server /myredis/redis.conf 启动
11,连接Redis,ping返回PONG代表启动成功
打开redis终端:redis-cli
12,测试键值对数据
13,单元测试效率
redis-benchmark
结果,每秒钟4万
14,关闭
二、基础
1,查看配置文件,看到默认有16个库
选择库
2,查看库的key数量
DBSIZE
3,列出当前库的所有key值
keys *
4,删除key
FLUSHDB:删除当前库的所有key
FLUSHALL:删除16个库的所有key
三、Redis常用5大数据类型
String(字符串)、Hash(哈希)、List(列表)、Set(集合)和Zset(sorted set:有序集合)
1,String
一个key对应一个value。
string类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象。
string类型是redis最基本的数据类型,一个redis中字符串value最多可以是512M。
2,Hash
Hash是一个键值对集合,是一个string类型的field和value的映射表,hash特别适合用于存储对象
类似于Java的Map<String,Object>
3,List
单值多value
List是简单的字符串列表,安装插入顺序排列,你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
它的底层实际是个链表
4,Set
Set是string类型的无序集合,它通过HashTable实现的。
5,Zset
zset和set一样也是string类型元素的集合,且不允许重复的成员
不同的是每个元素都会关联一个double类型的分数。
redis正是通过分数来未集合中的成员进行从小到大的排序。zset的成员是唯一的,但是分数(socre)却可以重复。
四、常用指令
Redis键(key)
1,判断key是否存在
存在返回1,不存在返回0
2,移动k1到2号库
move k1 2
3,查看键值对活多久
-1 永不过期
设置k2活10秒:EXPIRE k2 10
还剩下6秒
-2已经过期
4,查看key类型
type key
库中存在key则更新值
Redis字符串(String)
1,set/get/del/append/strlen/
2,Incr/decr/incrby/decrby一定要是数字才可以进行加减
Incr/decr:加1/减1
incrby/decrby:加指定值
3,getrange/setrange
范围内截取字符串/设置字符串
4,setex/setnx
设置过期时间/存在不设置值
5,mset/mget/msetnx
设置多个值/获取多个值/设置多个值,只要有一个已经存在就不插入
Redis列表(List)
1,lpush/rpush/lrange
lrange list01 0 -1//读取list01表,-1表示到结束
lpush list01 1 2 3 4 5//往list01里添加5个数据。左边的是怎么进去倒着出来
rpush list02 1 2 3 4 5//往右边的是怎么进去怎么出
2,lpop/rpop
弹出栈顶或者栈底
3,lindex
按照索引下标获取元素(从上到下)
4,llen
获取列表长度
5,lrem key
删N个value
如下删除2个3
6,LTRIM
截取出内容再赋值给原来的列表
7,rpoplpush
RPOPLPUSH 源列表 目的列表
8,lset key index value
设置某个位置的值
9,linsert key before/after 值1 值2
将某个值插入到某个值的后面
list总结
是一个字符串链表,左右都可以插入;
如果键不存在,则创建,存在则更新内容;
如果值全部移除,对应的键也就消失了;
链表的操作无论是头和尾效率都极高,但是对中间的操作效率就很低。
Redis集合(Set)
单值多value
1,sadd/smembers/slsmember
sadd:添加集合,会去除重复的
smembers:查看集合
slsmember:判断值是否存在
2,scard获取集合里面的元素个数
3,srem key value 删除集合中元素
4,srandmember key 某个整数(随机出几个数字)
比如100个人,抽10个人中红包
5,spop key 随机出栈
6,smove key1 key2 在key1里的某个值 作用是将key1的某个值赋给key2
7,数学集合-
差集sdiff
以第一个集合为准,set2与set1对比,差什么就显示出来
交集sinter
与第一个的交集
并集sunion
与第一个的并集
Redis哈希(Hash)
KV模式不变,但V是一个键值对
1,hset/hget/hmset/hmget/hgetall/hdel
hset:
hset user id 11
hget:
hget user id
hmset:
hmset customer id 1 name lisi age 20
hmget:
hmget customer id name age
hgetall:
获取所有的键值对
hgetall customer
hdel:
删除键值对
hdel user name
2,hlen
获取键值对个数
3,hexists key 在key里面的某个值的key
存在为1,不存在为0
4,hkeys/hvals
hkeys:获取所有的key名称
hvals:获取所有的values值
5,hincrby/hincrbyfloat
hincrby:整数加
hincrbyfloat:浮点数加
hset student1 score 92.3
6,hsetnx
不存在则插入,存在则不操作
Resis集合Zset(sorted set)
在set基础上,加一个score值,之前是k1 v1 v2 v3
现在zset是k1 score1 v1 score2 v2
1,zadd/zrange
zadd:
zadd zset01 60 v1 70 v2 80 v3 90 v4 100 v5//添加数据60分的v1人,70分的v2人。。
zrange:
查询
zrange zset01 0 -1
带key查询
zrange zset01 0 -1 withscores
2,zrangebyscore
按范围查询
zrangebyscore key 开始score 结束score (空 、(不包含、withscores、Limit作用是返回限制)
范例:zrangebyscore zset01 60 (90
大于等于60,小于90
范例:zrangebyscore zset01 60 90 limit 2 2//返回结果集中,从2开始截取2个,相当于分页
3,zrem
删除元素
zrem key 某score下对应的value值
4,zcard/zcount key score区间/zrank key values值,作用是获得下标值/zscore key 对应值,获得分数
zcard:获取个数
zcount :统计区间个数
zrank :获取下标
zscore :获取分数
5,zrevrank key values值
逆序获得下标值
6,zrevrange
逆序查询