Redis的介绍、安装、数据类型、keys命令

时间:2019-03-19
本文章向大家介绍Redis的介绍、安装、数据类型、keys命令,主要包括Redis的介绍、安装、数据类型、keys命令使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Redis

(一)redis的介绍
1) 什么是redis
c语言编写的键值非关系型数据库。主要用于高速访问的内容缓存,
redis也可以实现持久化,支持事务操作。
常用数据类型: string(字符类型),hash(散列类型),lists(列表类型),set(集合类型),
sortedSet(有序集合)。
2) 背景
3) redis应用场景
缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用)
分布式集群架构中的session分离。
聊天室的在线好友列表。
任务队列。(秒杀、抢购、12306等等)
应用排行榜。
网站访问统计。
数据过期处理(可以精确到毫秒)

(二) 安装Redis
1)下载
http://www.redis.io
http://www.redis.cn
2) redis安装
A. 准备: gcc环境 yum -y install gcc-c++
make命令: yum -y install make
B. 下载解压
tar -zxvf redis-4.0.10.tar.gz -C /opt/
C. 切换到目录,编译
make:编译
清理: make distclean
D. 测试
make test(安装tcl)
E. 安装
make install(默认安装:/usr/local/bin)
make install PREFIX=/usr/local/redis
F. 复制redis.conf到etc
cp redis.conf /etc/
G. 环境变量
export REDIS_HOME=/usr/local/redis
export PATH=PATH:PATH:JAVA_HOME/bin:$REDIS_HOME/bin
source /etc/profile
3) redis启动(服务器端+客户端)
A. 前端启动(服务器前端运行)
服务器: ./redis-server
关闭:
强制关闭:ctrl+c
正常命令: ./redis-cli shutdown(推荐)
客户端:./redis-cli
B. 后端启动
修改配置文件:
bind 192.168.2.101(修改绑定ip)
daemonize yes(修改作为后台守护程序运行)
运行服务器端:
./redis-server /etc/redis.conf
关闭服务器端:
kill杀死
./redis-cli shutdown(推荐)
自带客户端连接:
./redis-cli -h ip地址 -p 端口
图形客户端:
需要关闭防火墙

4) jedis客户端
(三)Redis数据类型
1) string类型
A. 赋值和取值
set key value:赋值
get key:取值
getset key value:取值并赋值
mset k1 v1 k2 v2:赋值多个值
mget k1 k2:获取多个值
B. 删除
del key
C. 数值增减
incr:增长1
incrby:设置增长数
decr:减少1
decrby:减少整数值
D. 其他命令
append key value:追加数值
strlen key:获取长度

2) hash类型
散列类型,支持扩展key,提供字段属性,字段和字段值之间实现映射。
字段值只支持string类型。
A. 设置和获取值(设置值不区分插入和更新,0代表更新,1代表插入)

192.168.2.101:6379> HSET user:001 name zs
(integer) 1
192.168.2.101:6379> HSET user:001 name ls
(integer) 0
192.168.2.101:6379> HGET user:001 name
"ls"
192.168.2.101:6379> HMSET user:001 name zs age 12
OK
192.168.2.101:6379> HMGET user:001 name age
1)"zs"
2) "12"

有该key则不赋值,没有则赋值

192.168.2.101:6379> HSETNX user:001 name ww
(integer) 0
192.168.2.101:6379> HGETALL user:001
1)"name"
2) "zs"
3) "age"
4)"12"
5)"sex"
6) "man"

B. 删除
hdel
C. 增加

HINCRBY user:001 age 3

D. 其他

192.168.2.101:6379> keys *
1) "user:001"
2) "k1"
3) "id"
4) "k2"
5) "k3"
192.168.2.101:6379> EXISTS k1
(integer) 1
192.168.2.101:6379> EXISTS k8
(integer) 0
192.168.2.101:6379> HEXISTS user:001 sex
(integer) 0
192.168.2.101:6379> HEXISTS user:001 name
(integer) 1
192.168.2.101:6379> EXISTS user:001
(integer) 1
192.168.2.101:6379> TYPE user:001
hash
192.168.2.101:6379> TYPE k1
string
192.168.2.101:6379> HKEYS user:001
1) "name"
2) "age"
192.168.2.101:6379> HVALS user:001
1)"zs"
2) "15"
192.168.2.101:6379> HLEN user:001
(integer) 2

E. 使用场景
存储对象信息(用户,商品信息等)

3) list类型
列表类型,list采用链表存储,操作从两端操作。
A. 从两端添加数据

192.168.2.101:6379> LPUSH list1 a b c
(integer) 3
192.168.2.101:6379> RPUSH list1 d e f
(integer) 6

B. 查看列表

LRANGE list1 0 -1

index:从0开始
start stop
-1代表最后一位
C. 从两端弹出值

192.168.2.101:6379> LPOP list1
"c"
192.168.2.101:6379> RPOP list1
"f"

D. llen查看list长度
E. 删除指定的数据

LREM list1 2 d

删除前count个value值
count>0 从左往右
count < 0 从右往左
count =0 删除所有
F. 查看指定索引的值

192.168.2.101:6379> LINDEX list1 0
"a"

G. 保留片段

192.168.2.101:6379> LTRIM list1 0 1

H. 插入指定位置

LINSERT list1 after a c

I. 复制列表

RPOPLPUSH list1 list2

J. 使用场景
用于商品评论
4) set
无序,不重复
A. 添加和删除元素

192.168.2.101:6379> SADD set1 a b c
(integer) 3
192.168.2.101:6379> SADD set1 a
(integer) 0
192.168.2.101:6379> SADD set1 d
(integer) 1
192.168.2.101:6379> SREM set1 d
(integer) 1

B. 查看所有元素

SMEMBERS set1

C. 判断是否存在

SISMEMBER set1 a

D. 运算

192.168.2.101:6379> SUNION set1 set2
1)"c"
2) "b"
3) "d"
4) "a"
192.168.2.101:6379> SINTER set1 set2
1 "c"
2) "b"
192.168.2.101:6379> SDIFF set1 set2
1)"a"
192.168.2.101:6379> SDIFF set2 set1
1)"d"

E. 其他
scard:长度
spop:弹出
5) sortedset
又名zset,唯一且可排序。
为每个元素设置分数,根据分数实现排序。
A. 添加元素 zadd
添加元素和分数,如果该元素存在则修改分数并返回0;如果不存在返回1.

192.168.2.101:6379> ZADD zset1 80 zs 90 ls 70 ww

B. 查看分数

ZSCORE zset1 zs

C. 删除元素

ZREM zset1 zl

D. 顺序输出

ZRANGE zset1 0 -1 withscores

E. 倒序输出

ZREVRANGE zset1 0 -1 withscores

F. 排名

ZRANK ZSET1 ZS
ZREVRANK zset1 ls

G. 指定分数范围排序
最小分数 最大分数 offset length

ZRANGEBYSCORE zset1 80 90 withscores limit 0 1

H. 增加某个成员分数

ZINCRBY zset1 5 ww

I. 查看元素个数

zcard zset1

J. 统计范围内的元素个数

ZCOUNT zset1 85 90

K. 根据排名删除范围内元素

ZREMRANGEBYRANK key start stop

L. 根据分数删除范围内元素

ZREMRANGEBYSCORE key start stop

M. 应用场景
排行榜
(四) keys命令

  1. keys pattern
  2. exists:判断keys存在
  3. del:删除key
  4. rename:重命名key
  5. type:查看类型
  6. 设置key的生存时间
    EXPIRE key seconds 设置key的生存时间(单位:秒)key在多少秒后会自动删除
    TTL key 查看key剩余的生存时间
    PERSIST key 清除生存时间
    PEXPIRE key milliseconds 生存时间设置单位为:毫秒