一天入门redis-安装连接、基本数据类型

系统环境

  • VMware® Workstation 12 Pro
  • x86_64/CentOS-7-x86_64-DVD-1708.iso
  • XShell5
  • redis-4.02

下载地址

http://redis.io/
http://www.redis.cn/

帮助文档

Http://redisdoc.com/

linux下安装

  • 先安装gcc yum install gcc-c++
  • 这里选择手动解压安装
  • 将压缩包上传至某目录或者wget,解压到/opt/
  • 进入该目录,使用make编译安装
  • 进入src目录下,cp redis.conf /自定义配置文件目录
  • 至此安装成功

    出现问题jemalloc/jemalloc.h,make distclean之后在make

安装目录大致介绍-src下(可执行)


redis-sentinel:集群使用
Redis-benchmark:性能测试
Redis-check-aof:修复aof
Redis-check-dump:操作入口
Redis-server:刚才用到的启动命令

启动redis并且连接到redis

  • 进入目录下的src
  • 启动:安装成功后入输入./redis-server /自定义配置文件目录
  • 连接:./redis-cli -p 6379(指定关端口)

查看redis 是否启动成功


ps -ef|grep redis

关闭redis

  • 在cli下的话,输入shutdown,并且exit
  • 不在cli下,单例客户端 ./redis-cli shutdown
  • 不在cli下,指定端口 redis-cli -p 6379 shutdown

key基本操作(以String为例)

ttl中-2表示已经过期,-1永不过期

默认选中的数据为0号数据库,也就是说要move的话必须move到0之外的数据库, 默认有16个数据库

五大数据类型

String
  • 一个key对应一个value
  • string类型是二进制安全的。
  • string类型是Redis最基本的数据类型。
指令操作


Hash
  • 键值对集合
  • 适合用于存储对象
  • 类似Java里面的MapM
指令操作
127.0.0.1:6379[1]> hset h1 k1 v1
(integer) 1
127.0.0.1:6379[1]> hset h2 k1 v1
(integer) 1
127.0.0.1:6379[1]> hset h1 k1 v1
(integer) 0
127.0.0.1:6379[1]> hset h1 1 v1
(integer) 1
127.0.0.1:6379[1]> hget h1 k1
"v1"
127.0.0.1:6379[1]> hget 1 k1
(nil)
127.0.0.1:6379[1]> hget k1 1
(nil)
127.0.0.1:6379[1]> keys *
1) "h1"
2) "h2"
127.0.0.1:6379[1]> hget h1 1
"v1"
127.0.0.1:6379[1]> hget h1 k1
"v1"
127.0.0.1:6379[1]> hget h1 k2
(nil)
127.0.0.1:6379[1]> hmset h3 k1 v1 k2 v2 k3 v3
OK
127.0.0.1:6379[1]> hgetall h3
1) "k1"
2) "v1"
3) "k2"
4) "v2"
5) "k3"
6) "v3"
127.0.0.1:6379[1]> hdel h3 k3
(integer) 1
127.0.0.1:6379[1]> hgetall h3
1) "k1"
2) "v1"
3) "k2"
4) "v2"
127.0.0.1:6379[1]> hlen h3
(integer) 2
127.0.0.1:6379[1]> HEXISTS h3 k2
(integer) 1
127.0.0.1:6379[1]> HEXISTS h3 k3
(integer) 0
127.0.0.1:6379[1]> HKEYS h3
1) "k1"
2) "k2"
127.0.0.1:6379[1]> HVALS h3
1) "v1"
2) "v2"
127.0.0.1:6379[1]> HINCRBY h3
(error) ERR wrong number of arguments for 'hincrby' command
127.0.0.1:6379[1]> HMGET h4 k1 1 k2 2
1) (nil)
2) (nil)
3) (nil)
4) (nil)
127.0.0.1:6379[1]> hmset h4 k1 1 k2 2
OK
127.0.0.1:6379[1]> HGET h4
(error) ERR wrong number of arguments for 'hget' command
127.0.0.1:6379[1]> HGETALL h4
1) "k1"
2) "1"
3) "k2"
4) "2"
127.0.0.1:6379[1]> HINCRBY h4 k1 1
(integer) 2
127.0.0.1:6379[1]> HGETALL h4
1) "k1"
2) "2"
3) "k2"
4) "2"
127.0.0.1:6379[1]> HINCRBY h4 k1 1.52
(error) ERR value is not an integer or out of range
127.0.0.1:6379[1]> hset h4 k3 1.5
(integer) 1
127.0.0.1:6379[1]> HGETALL h4
1) "k1"
2) "2"
3) "k2"
4) "2"
5) "k3"
6) "1.5"
127.0.0.1:6379[1]> hset h4 k3 1.5
(integer) 0
127.0.0.1:6379[1]> HGETALL h4
1) "k1"
2) "2"
3) "k2"
4) "2"
5) "k3"
6) "1.5"
127.0.0.1:6379[1]> HINCRBYFLOAT h4 k3 1.5
"3"
127.0.0.1:6379[1]> HGETALL h4
1) "k1"
2) "2"
3) "k2"
4) "2"
5) "k3"
6) "3"
127.0.0.1:6379[1]> HSETNX h5 k1 v1 k2 v2
(error) ERR wrong number of arguments for 'hsetnx' command
127.0.0.1:6379[1]> HSETNX h5 k1 v1
(integer) 1
127.0.0.1:6379[1]> HGETALL h5
1) "k1"
2) "v1"
127.0.0.1:6379[1]> 
[root@localhost src]# 
List
类似于数据结构中的双端链表
127.0.0.1:6379> FLUSHALL
OK
127.0.0.1:6379> lpush k1 v1 v2 v3
(integer) 3
127.0.0.1:6379> llen k1
(integer) 3
127.0.0.1:6379> lrange k1 0 -1
1) "v3"
2) "v2"
3) "v1"
127.0.0.1:6379> rpush k1 v4 v5
(integer) 5
127.0.0.1:6379> lrange k1 0 -1
1) "v3"
2) "v2"
3) "v1"
4) "v4"
5) "v5"
127.0.0.1:6379> lpop k1
"v3"
127.0.0.1:6379> lpop k1
"v2"
127.0.0.1:6379> rpop k1
"v5"
127.0.0.1:6379> lindex k1 0
"v1"
127.0.0.1:6379> lindex k1 4
(nil)
127.0.0.1:6379> lindex k1 2
(nil)
127.0.0.1:6379> lindex k1 1
"v4"
127.0.0.1:6379> rpop v6
(nil)
127.0.0.1:6379> rpush k1 v6
(integer) 3
127.0.0.1:6379> lrem k1 1 v6
(integer) 1
127.0.0.1:6379> rpush k1 v6 v6 v6 v6
(integer) 6
127.0.0.1:6379> LRANGE k1 0 -1
1) "v1"
2) "v4"
3) "v6"
4) "v6"
5) "v6"
6) "v6"
127.0.0.1:6379> lrem k1 
(error) ERR wrong number of arguments for 'lrem' command
127.0.0.1:6379> lrem k1 3 v6
(integer) 3
127.0.0.1:6379> LRANGE k1 0 -1
1) "v1"
2) "v4"
3) "v6"
127.0.0.1:6379> ltrim k1 -1 1
OK
127.0.0.1:6379> LRANGE k1 0 -1
(empty list or set)
127.0.0.1:6379> rpush k1 v1 v2 v3 v4 v5 v6
(integer) 6
127.0.0.1:6379> LRANGE k1 0 3
1) "v1"
2) "v2"
3) "v3"
4) "v4"
127.0.0.1:6379> RPOPLPUSH k1 k2
"v6"
127.0.0.1:6379> LRANGE k1 0 -1
1) "v1"
2) "v2"
3) "v3"
4) "v4"
5) "v5"
127.0.0.1:6379> LRANGE k2 0 -1
1) "v6"
127.0.0.1:6379> LSET k1 0 v5
OK
127.0.0.1:6379> LRANGE k2 0 -1
1) "v6"
127.0.0.1:6379> LRANGE k1 0 -1
1) "v5"
2) "v2"
3) "v3"
4) "v4"
5) "v5"
127.0.0.1:6379> LINSERT k1 BEFORE 2 i1
(integer) -1
127.0.0.1:6379> LRANGE k1 0 -1
1) "v5"
2) "v2"
3) "v3"
4) "v4"
5) "v5"
127.0.0.1:6379> LINSERT k1 BEFORE k5 i1
(integer) -1
127.0.0.1:6379> LINSERT k1 BEFORE v5 i1
(integer) 6
127.0.0.1:6379> LRANGE k1 0 -1
1) "i1"
2) "v5"
3) "v2"
4) "v3"
5) "v4"
6) "v5"
127.0.0.1:6379> LINSERT k1 AFTER v5 i2
(integer) 7
127.0.0.1:6379> LRANGE k1 0 -1
1) "i1"
2) "v5"
3) "i2"
4) "v2"
5) "v3"
6) "v4"
7) "v5"
127.0.0.1:6379> 
Set
与java中的set相似,value不能相同
127.0.0.1:6379> FLUSHDB
OK
127.0.0.1:6379> sadd set1 v1 v2
(integer) 2
127.0.0.1:6379> sadd set2 v1 v1
(integer) 1
127.0.0.1:6379> SMEMBERS k1
(empty list or set)
127.0.0.1:6379> SMEMBERS set1
1) "v1"
2) "v2"
127.0.0.1:6379> clear
127.0.0.1:6379> FLUSHDB
OK
127.0.0.1:6379> sadd k1 m1 m2 m3
(integer) 3
127.0.0.1:6379> SMEMBERS k1
1) "m2"
2) "m3"
3) "m1"
127.0.0.1:6379> sadd k1 m4 m4 m4
(integer) 1
127.0.0.1:6379> SMEMBERS k1
1) "m3"
2) "m4"
3) "m1"
4) "m2"
127.0.0.1:6379> SISMEMBER k1 m4
(integer) 1
127.0.0.1:6379> SMEMBERS k1
1) "m4"
2) "m1"
3) "m2"
4) "m3"
127.0.0.1:6379> 
[root@localhost src]# 
[root@localhost src]# ./redis-cli -p 6379
127.0.0.1:6379> SISMEMBER k1 m5
(integer) 0
127.0.0.1:6379> scard k1
(integer) 4
127.0.0.1:6379> srem k1 v4
(integer) 0
127.0.0.1:6379> srem k1 m4
(integer) 1
127.0.0.1:6379> SRANDMEMBER k1 1
1) "m3"
127.0.0.1:6379> SRANDMEMBER k1 4
1) "m2"
2) "m3"
3) "m1"
127.0.0.1:6379> SRANDMEMBER k1 3
1) "m2"
2) "m3"
3) "m1"
127.0.0.1:6379> SPOP ky 2
(empty list or set)
127.0.0.1:6379> 
127.0.0.1:6379> SPOP k1 2
1) "m1"
2) "m2"
127.0.0.1:6379> SMEMBERS k1
1) "m3"
127.0.0.1:6379> FLUSHALL
OK
127.0.0.1:6379> sadd k1 v1 v2 v3
(integer) 3
127.0.0.1:6379> sadd k2 v3 v4 v5
(integer) 3
127.0.0.1:6379> SDIFF k1 k2
1) "v1"
2) "v2"
127.0.0.1:6379> SINTER k1 k2
1) "v3"
127.0.0.1:6379> SUBSCRIBE k1 k2
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "k1"
3) (integer) 1
1) "subscribe"
2) "k2"
3) (integer) 2
hashset
与set类似
127.0.0.1:6379> FLUSHALL
OK
127.0.0.1:6379> hset k1 f1 v1 f2 v2
(integer) 2
127.0.0.1:6379> hget k1 v1
(nil)
127.0.0.1:6379> hget k1 f1
"v1"
127.0.0.1:6379> hget k1 f2
"v2"
127.0.0.1:6379> hmset k1 f3 v3 f4 v4
OK
127.0.0.1:6379> hmget k1 f1 f2 f3 f4
1) "v1"
2) "v2"
3) "v3"
4) "v4"
127.0.0.1:6379> hmget k1 f4 v3
1) "v4"
2) (nil)
127.0.0.1:6379> hmget k1 f4 f3
1) "v4"
2) "v3"
127.0.0.1:6379> HGETALL
(error) ERR wrong number of arguments for 'hgetall' command
127.0.0.1:6379> HGETALL k1
1) "f1"
2) "v1"
3) "f2"
4) "v2"
5) "f3"
6) "v3"
7) "f4"
8) "v4"
127.0.0.1:6379> hdel k1 f1
(integer) 1
127.0.0.1:6379> hdel k1 f2
(integer) 1
127.0.0.1:6379> HGETALL k1
1) "f3"
2) "v3"
3) "f4"
4) "v4"
127.0.0.1:6379> 
127.0.0.1:6379> HLEN k1
(integer) 2
127.0.0.1:6379> HEXISTS k1 f1
(integer) 0
127.0.0.1:6379> HEXISTS k1 f3
(integer) 1
127.0.0.1:6379> hlen k1
(integer) 2
127.0.0.1:6379> HEXISTS k1 v1
(integer) 0
127.0.0.1:6379> hkeys k1
1) "f3"
2) "f4"
127.0.0.1:6379> HVALS v1
(empty list or set)
127.0.0.1:6379> HVALS k1
1) "v3"
2) "v4"
127.0.0.1:6379> hset k2 f1 1 f2 1.5
(integer) 2
127.0.0.1:6379> HINCRBY k2 f1 1
(integer) 2
127.0.0.1:6379> HINCRBYFLOAT k2 f2 1.3
"2.8"
127.0.0.1:6379> HGET k2 f2
"2.8"
127.0.0.1:6379> HGETALL k2
1) "f1"
2) "2"
3) "f2"
4) "2.8"
127.0.0.1:6379> HSETNX k2 f1 3
(integer) 0
127.0.0.1:6379> HSETNX k2 f3 3
(integer) 1
127.0.0.1:6379> HGETALL k2
1) "f1"
2) "2"
3) "f2"
4) "2.8"
5) "f3"
6) "3"
127.0.0.1:6379> 
Zset(有序集合set)
127.0.0.1:6379> zadd k1 1 v1 2 v2 3 v34
(integer) 3
127.0.0.1:6379> zadd k1 2 v3
(integer) 1
127.0.0.1:6379> ZRANGE k1 0 -1 withscores
1) "v1"
2) "1"
3) "v2"
4) "2"
5) "v3"
6) "2"
7) "v34"
8) "3"
127.0.0.1:6379> zadd k1 2 v34
(integer) 0
127.0.0.1:6379> ZRANGE k1 1 3
1) "v2"
2) "v3"
3) "v34"
127.0.0.1:6379> ZRANGE k1 0 4
1) "v1"
2) "v2"
3) "v3"
4) "v34"
127.0.0.1:6379> ZRANGE k1 0 3
1) "v1"
2) "v2"
3) "v3"
4) "v34"
127.0.0.1:6379> ZRANGE k1 0 3 withscores
1) "v1"
2) "1"
3) "v2"
4) "2"
5) "v3"
6) "2"
7) "v34"
8) "2"
127.0.0.1:6379> ZRANGE k1 (1 3 withscores
(error) ERR value is not an integer or out of range
127.0.0.1:6379> ZRANGEBYSCORE k1 1 3
1) "v1"
2) "v2"
3) "v3"
4) "v34"
127.0.0.1:6379> ZRANGEBYSCORE k1 (1 3
1) "v2"
2) "v3"
3) "v34"
127.0.0.1:6379> ZRANGEBYSCORE k1 (1 (3
1) "v2"
2) "v3"
3) "v34"
127.0.0.1:6379> ZRANGEBYSCORE k1 (1 (2
(empty list or set)
127.0.0.1:6379> ZRANGEBYSCORE k1 1 (2
1) "v1"
127.0.0.1:6379> ZRANGEBYLEX 1 +inf withscores
(error) ERR min or max not valid string range item
127.0.0.1:6379> zrangebyscore  1 +inf withscores
(error) ERR min or max is not a float
127.0.0.1:6379> ZRANGEBYSCORE k1 1 +inf withscores
1) "v1"
2) "1"
3) "v2"
4) "2"
5) "v3"
6) "2"
7) "v34"
8) "2"
127.0.0.1:6379> ZRANGEBYSCORE k1 1 +inf withscores limit 1 2
1) "v2"
2) "2"
3) "v3"
4) "2"
127.0.0.1:6379> 
127.0.0.1:6379> zrem k1 v34
(integer) 1
127.0.0.1:6379> ZRANGE k1 0 -1
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> zcard k1
(integer) 3
127.0.0.1:6379> zcount k1 2 3
(integer) 2
127.0.0.1:6379> zcount k1 1 3
(integer) 3
127.0.0.1:6379> ZRANGE k1 v1
(error) ERR wrong number of arguments for 'zrange' command
127.0.0.1:6379> ZRAnk k1 v1
(integer) 0
127.0.0.1:6379> ZRAnk k1 v2
(integer) 1
127.0.0.1:6379> ZSCORE K1 V1
(nil)
127.0.0.1:6379> ZSCORE K1 v2
(nil)
127.0.0.1:6379> ZSCORE K1 v1
(nil)
127.0.0.1:6379> ZSCORE k1 v1
"1"
127.0.0.1:6379> ZREVRANK k1 v1
(integer) 2
127.0.0.1:6379> ZREVRANK k1 v2
(integer) 1
127.0.0.1:6379> ZREVRANK k1 v3
(integer) 0
127.0.0.1:6379> ZREVRANGE k1 0 -1 withscores
1) "v3"
2) "2"
3) "v2"
4) "2"
5) "v1"
6) "1"
127.0.0.1:6379> ZREVRANGEBYSCORE k1 1 3 withscores
(empty list or set)
127.0.0.1:6379> ZRANGEBYSCORE k1 1 2 withscores
1) "v1"
2) "1"
3) "v2"
4) "2"
5) "v3"
6) "2"
127.0.0.1:6379> ZREVRANGEBYLEX k1 1 3 withscores
(error) ERR min or max not valid string range item
127.0.0.1:6379> ZREVRANGEBYLEX k1 1 3 
(error) ERR min or max not valid string range item
127.0.0.1:6379> ZREVRANGEBYLEX k1 3 1 withscores
(error) ERR min or max not valid string range item
127.0.0.1:6379> ZREVRANGEBYscore k1 3 1 withscores
1) "v3"
2) "2"
3) "v2"
4) "2"
5) "v1"
6) "1"
127.0.0.1:6379> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值