redis安装、下载及基本命令使用

目录:

  1. Redis安装与下载
  2. Redis Key操作命令
  3. Redis 五大数据类型操作
Redis安装与下载
  1. 从官网下载源码包
    [root@linux-node2 ~]# wget http://download.redis.io/releases/redis-5.0.5.tar.gz
    
  2. 解压
    [root@linux-node2 ~]# tar xvf redis-5.0.5.tar.gz
    
  3. 编译安装
    [root@linux-node2 redis-5.0.5]# make  PREFIX=/usr/local/redis install
    
  4. 复制配置文件,并修改配置
    [root@linux-node2 redis-5.0.5]# cp redis.conf /usr/local/redis/
    
    # 将第136行后台运行打开
    [root@linux-node2 redis]# grep -n daemonize redis.conf 
    135:# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
    136:daemonize yes
    152:# When the server runs non daemonized, no pid file is created if none is
    153:# specified in the configuration. When the server is daemonized, the pid file
    170:# output for logging but daemonize, logs will be sent to /dev/null
    
  5. 启动redis
    [root@linux-node2 ~]# /usr/local/redis/bin/redis-server /usr/local/redis/redis.conf 
    9408:C 14 Oct 2019 11:02:24.808 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    9408:C 14 Oct 2019 11:02:24.808 # Redis version=5.0.5, bits=64, commit=00000000, modified=0, pid=9408, just started
    9408:C 14 Oct 2019 11:02:24.808 # Configuration loaded
    
    # 查看redis端口是否开启
    [root@linux-node2 ~]# netstat -tlnp
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
    tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      5153/mongod         
    tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      4199/rsync          
    tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      9409/redis-server 1 
    

回到目录



Redis Key操作命令
  • del key1 key2 … keyn

作用:删除1个或者多个键
返回值:不存在的key忽略掉,返回真正删除的key的数量

  • rename key newkey

作用:将key修改为新的key名
注:如果成功返回ok,原key被删除

  • renamenx key newkey

作用:与rename相同,把key改名为newkey,但是返回值为数字
返回:发生修改返回1,未发生修改返回0

  • move key db

将key移动到其他redis数据库中
注:一个redis进程,可以打开不止一个数据库, 默认打开16个数据库,从0到15编号,如果想打开更多数据库,可以从配置文件修改

127.0.0.1:6379> KEYS *  # 查看所有key
1) "name"
127.0.0.1:6379> MOVE name 1  # 将key:name移到1号数据库
(integer) 1
127.0.0.1:6379> KEYS *  # 0号数据库为空
(empty list or set)
127.0.0.1:6379> select 1  # 选择1号数据库
OK
127.0.0.1:6379[1]> KEYS *  # 查看1号数据库所有key
1) "name"
  • flushall

清空当前redis数据库的所有keys

127.0.0.1:6379> FLUSHALL
OK
127.0.0.1:6379> keys *
(empty list or set)
  • keys pattern

查看当前数据库中keys
pattern可选择如下:
*: 通配任意多个字符
?: 通配单个字符
[]: 通配括号内的某1个字符

redis 127.0.0.1:6379> mset one 1 two 2 three 3 four 4
OK
redis 127.0.0.1:6379> keys o*
1) “one”
redis 127.0.0.1:6379> keys *o
1) “two”
redis 127.0.0.1:6379> keys ???
1) “one”
2) “two”
redis 127.0.0.1:6379> keys on?
1) “one”
redis 127.0.0.1:6379> set ons yes
OK
redis 127.0.0.1:6379> keys on[eaw]
1)”one”
  • randomkey 返回随机key
127.0.0.1:6379> RANDOMKEY
"two"
127.0.0.1:6379> RANDOMKEY
"three"
127.0.0.1:6379> RANDOMKEY
"two"
  • exists key

判断key是否存在 返回1/0

127.0.0.1:6379> EXISTS one
(integer) 1
  • type key

返回key存储的值的类型 有string(字符串) link set(链表) order set(集合) hash(哈希)

127.0.0.1:6379> type ons
string
Key生命周期
  • ttl key 查询key的生命周期

  • expire key 整型值 设置key的生命周期

  • pexpire key 毫秒数, 设置生命周期

  • pttl key, 以毫秒返回生命周期

  • persist key 把指定key设置为永久有效

注:对于不存在的key或已过期的key/不过期的key,都返回-1
Redis中,对于不存在的key,返回-2

回到目录



Redis 五大数据类型操作
字符串数据类型操作
  • set key value [ex 秒数] / [px 毫秒数]

设置key存放字符串类型数据 ex 存货秒数,px为毫秒数

set a 1 ex 10 , 10秒有效
Set a 1 px 9000  , 9秒有效
# 注: 如果ex,px同时写,以后面的有效期为准
# 如 set a 1 ex 100 px 9000, 实际有效期是9000毫秒
  • mset multi set

一次性设置多个键值

mset key1 v1 key2 v2 ....
  • get key

获取key的值

  • mget key1 key2 …keyn

获取多个key的值

  • getset key newvalue

获取并返回旧值,设置新值

redis 127.0.0.1:6379> set cnt 0
OK
redis 127.0.0.1:6379> getset cnt 1
"0"
redis 127.0.0.1:6379> get cnt 
"1"
  • incr key

作用: 指定的key的值加1,并返回加1后的值

  • incrby key number

指定key的值加上后面指定的数字

redis 127.0.0.1:6379> incrby age  90
(integer) 92
  • incrbyfloat key floatnumber

指定key的值加上后面指定的浮点数,并返回浮点数
redis 127.0.0.1:6379> incrbyfloat age 3.5
“95.5”

  • decr key

指定的key的值减1,并返回减1后的值

redis 127.0.0.1:6379> set age 20
OK
redis 127.0.0.1:6379> decr age
(integer) 19
  • decrby key number

指定key的值减去后面指定的数字

redis 127.0.0.1:6379> decrby age 3
(integer) 16

应用场景:在登录的时候,可以控制频控,使用incr来表示用户的尝试登陆次数
回到目录



链表数据类型操作
  • lpush key value

作用: 把值插入到链表头部

  • rpop key

作用: 返回并删除链表尾元素

  • rpush

作用: 把值插入到链表尾部

  • lpop

作用: 返回并删除链头部元素

  • lrange key start stop

作用: 返回链表中[start ,stop]中的元素
规律: 左数从0开始,右数从-1开始

  • ltrim key start stop

作用: 剪切key对应的链表,切[start,stop]一段,并把该段重新赋给key

  • lindex key index

作用: 返回index索引上的值,
如 lindex key 2

  • llen key

作用:计算链接表的元素个数

redis 127.0.0.1:6379> llen task
(integer) 3
  • linsert key after|before search value

作用: 在key链表中寻找’search’,并在search值之前|之后,.插入value
注: 一旦找到一个search后,命令就结束了,因此不会插入多个value
场景: 长轮询Ajax,在线聊天时,能够用到

回到目录



集合数据类型操作
  • sadd setname value1 value2

作用: 往集合setname中增加元素

  • srem value1 value2

作用: 删除集合中集为 value1 value2的元素
返回值: 忽略不存在的元素后,真正删除掉的元素的个数

  • spop key

作用: 返回并删除集合中key中1个随机元素

  • srandmember key

作用: 返回集合key中,随机的1个元素.

  • sismember key value

作用: 判断value是否在key集合中
是返回1,否返回0

  • smembers key

作用: 返回集中中所有的元素

  • scard key

作用: 返回集合中元素的个数

  • smove source dest value

作用:把source中的value删除,并添加到dest集合中

  • sinter s1 s2 s3

作用: 求出s1 s2 s3 三个集合中的交集,并返回

redis 127.0.0.1:6379> sadd s1 0 2 4 6
(integer) 4
redis 127.0.0.1:6379> sadd s2 1 2 3 4
(integer) 4
redis 127.0.0.1:6379> sadd s3 4 8 9 12
(integer) 4
redis 127.0.0.1:6379> sinter s1 s2 s3
1) "4"
  • sinterstore dest s1 s2 s3

作用: 求出s1 s2 s3 三个集合中的交集,并赋给dest

  • suion s1 s2 s3… sn

作用: 求出s1 s2 s3… sn的并集,并返回
sdiff s1 s2 s3
作用: 求出s1与s2 s3的差集
即s1-s2-s3

回到目录



有序集合数据类型操作
  • zadd s1 score1 value1 score2 value2 …
redis 127.0.0.1:6379> zadd stu 18 lily 19 hmm 20 lilei 21 lilei
(integer) 3
  • zrem s1 value1 value2 …

作用: 删除集合中的元素

  • zremrangebyscore sname min max

作用: 按照socre来删除元素,删除score在[min,max]之间的

127.0.0.1:6379> ZREMRANGEBYSCORE stu 16 18
(integer) 1
# 18 lily会被删除
  • zremrangebyrank sname start end

作用: 按排名删除元素,删除名次在[start,end]之间的

redis 127.0.0.1:6379> zremrangebyrank stu 0 1
(integer) 2
redis 127.0.0.1:6379> zrange stu 0 -1
  • zrank key member

查询member的排名(升序 0名开始)

  • zrevrank key memeber

查询 member的排名(降序 0名开始)

  • ZRANGE key start stop [WITHSCORES]

把集合排序后,返回名次[start,stop]的元素
默认是升续排列
Withscores 是把score也打印出来

  • zrevrange key start stop

作用:把集合降序排列,取名字[start,stop]之间的元素

  • zrangebyscore key min max [withscores] limit offset N

作用: 集合(升续)排序后,取score在[min,max]内的元素,
并跳过 offset个, 取出N个

redis 127.0.0.1:6379> zadd stu 1 a 3 b 4 c 9 e 12 f 15 g
(integer) 6
redis 127.0.0.1:6379> zrangebyscore stu 3 12 limit 1 2 withscores
1) "c"
2) "4"
3) "e"
4) "9"
  • zcard key

返回元素个数

  • zcount key min max

返回[min,max] 区间内元素的数量

回到目录



哈希数据类型操作
  • hset key field value

作用: 把hash表中 filed域的值设为value
注:如果没有field域,直接添加,如果有,则覆盖原field域的值

  • hmset key field1 value1 [field2 value2 field3 value3 ……fieldn valuen]

作用: 设置field1->N 个域, 对应的值是value1->N
(对应PHP理解为 $key = array(file1=>value1, field2=>value2 …fieldN=>valueN))

  • hget key field

作用: 返回key中field域的值

  • hmget key field1 field2 fieldN

作用: 返回key中field1 field2 fieldN域的值

  • hgetall key

作用:返回key中,所有域与其值

  • hdel key field

作用: 删除key中 field域

  • hlen key

作用: 返回key中元素的数量

  • hexists key field

作用: 判断key中有没有field域

  • hincrby key field value

作用: 是把key中的field域的值增长整型值value

  • hincrby float key field value

作用: 是把key中的field域的值增长浮点值value

  • hkeys key

作用: 返回key中所有的field

  • hvals key

作用: 返回key中所有的value

回到目录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值