比尔云BierYun--阿里云最新优惠活动
阿里云优惠码丨阿里云代金券

Redis安装及使用详解

Redis安装及使用详解

推荐在Linux系统上安装,这里我采用CentOS6:

Redis采用3.0.0版本,官网下载即可

由于Redis是C语言编写,需要安装gcc(部分Linux自带gcc)

yum install gcc-c++

解压安装包:

tar -zxvf redis-3.0.0.tar.gz

编译redis源码:

cd redis-3.0.0
make

安装:

make install PREFIX=/usr/local/redis

启动redis:

第一种:不推荐

cd /usr/local/redis/bin
./redis-server

第二种:使用配置文件

cd redis-3.0.0
cp redis.conf /usr/local/redis/bin
vi /usr/local/redis/bin/redis.conf

修改daemonize为yes,然后:wq保存

启动:

./redis-server redis.conf

关闭:

./redis-cli shutdown

 

连接redis:Redis默认是16个数据库

第一种:直接使用自带客户端连接

./redis-cli -h 127.0.0.1 -p 6379

第二种:使用windows的图形化界面客户端连接(直观)

注意:如果有连接不到但是确定已经开启了redis的情况,需要配置防火墙

 

重点要关注的是第三点:Java连接,稍后再说,先来看一看数据类型

 

在自带客户端中进行操作:选择第一个(也就是redis-0)数据库

127.0.0.1:6379> select 0
OK

 

String数据类型:

127.0.0.1:6379> set key value
OK
127.0.0.1:6379> get key
"value"
127.0.0.1:6379>

 

多条信息存储和获取:

127.0.0.1:6379> mset k1 v1 k2 v2
OK
127.0.0.1:6379> mget k1 k2
1) "v1"
2) "v2"
127.0.0.1:6379>

 

根据key删除信息:

127.0.0.1:6379> del k1 k2
(integer) 2

 

数值增减:

递增:

复制代码
127.0.0.1:6379> incr num
(integer) 1
127.0.0.1:6379> incr num
(integer) 2
127.0.0.1:6379> incr num
(integer) 3
127.0.0.1:6379> get num
"3"
127.0.0.1:6379>
复制代码
复制代码
127.0.0.1:6379> incrby num 2
(integer) 2
127.0.0.1:6379> incrby num 2
(integer) 4
127.0.0.1:6379> incrby num 2
(integer) 6
127.0.0.1:6379> get num
"6"
复制代码

递减:

复制代码
127.0.0.1:6379> decr num
(integer) -1
127.0.0.1:6379> decr num
(integer) -2
127.0.0.1:6379> decr num
(integer) -3
127.0.0.1:6379> get num
"-3"
复制代码
复制代码
127.0.0.1:6379> decrby num 3
(integer) -3
127.0.0.1:6379> decrby num 3
(integer) -6
127.0.0.1:6379> decrby num 3
(integer) -9
127.0.0.1:6379> get num
"-9"
复制代码

 

一些其他命令的示范:

127.0.0.1:6379> set str hello
OK
127.0.0.1:6379> append str " world!"
(integer) 12
127.0.0.1:6379> get str
"hello world!"

 

Hash类型:可以理解为HashMap

代替Hash类型的方式:将需要保存的信息转换成JSON字符串

hset命令,插入和更新没有区分

127.0.0.1:6379> hset user username root
(integer) 1
127.0.0.1:6379> hset user password root
(integer) 1

多条插入:

127.0.0.1:6379> hmset user username root password root
OK

当不存在时候赋值:当字段不存在时赋值,存在的话不做任何操作

127.0.0.1:6379> hset user username root
(integer) 1
127.0.0.1:6379> hsetnx user username admin
(integer) 0
127.0.0.1:6379>

取Hash中的值:

复制代码
127.0.0.1:6379> hget user username
"root"
127.0.0.1:6379> hmget user username password
1) "root"
2) "123"
127.0.0.1:6379> hgetall user
1) "username"
2) "root"
3) "password"
4) "123"
复制代码

删除Hash中的字段:

127.0.0.1:6379> hdel user username
(integer) 1
127.0.0.1:6379> hgetall user
1) "password"
2) "123"

Hash字段增加数字:

127.0.0.1:6379> hset user age 30
(integer) 1
127.0.0.1:6379> hincrby user age 2
(integer) 32
127.0.0.1:6379> hget user age
"32"

判断字段是否存在:

127.0.0.1:6379> hexists user age
(integer) 1
127.0.0.1:6379> hexists user sex
(integer) 0

只获取key或者value:

127.0.0.1:6379> hkeys user
1) "password"
2) "age"
127.0.0.1:6379> hvals user
1) "123"
2) "32"

获取大小:

127.0.0.1:6379> hlen user
(integer) 2

 

在实际中的应用:比如添加商品

复制代码
127.0.0.1:6379> hmset item:1001 name iphonex price 7000 id 1001 color black
OK
127.0.0.1:6379> hkeys item:1001
1) "name"
2) "price"
3) "id"
4) "color"
复制代码

 

List类型:就像是Java的ArrayList

向左边或者右边添加元素:

127.0.0.1:6379> lpush list:1 1 2 3
(integer) 3
127.0.0.1:6379> rpush list:1 4 5 6 
(integer) 6

最终list:1是什么呢?

1->2 1-> 3 2 1->3 2 1 4->3 2 1 4 5->3 2 1 4 5 6

 

根据开始索引和结束索引查看:

127.0.0.1:6379> lrange list:1 1 3
1) "2"
2) "1"
3) "4"

如果想全部读取,设置为0到-1即可:

复制代码
127.0.0.1:6379> lrange list:1 0 -1
1) "3"
2) "2"
3) "1"
4) "4"
5) "5"
6) "6"
复制代码

从列表的两端弹出元素:

复制代码
127.0.0.1:6379> lpop list:1
"3"
127.0.0.1:6379> rpop list:1
"6"
127.0.0.1:6379> lrange list:1 0 -1
1) "2"
2) "1"
3) "4"
4) "5"
复制代码

列表长度:

127.0.0.1:6379> llen list:1
(integer) 4

删除:-1:从右往左删除第一个5;1:从左往右删除第一个5;0:删除所有的5

127.0.0.1:6379> lrem list:1 -1 5
(integer) 0
127.0.0.1:6379> lrem list:1 1 5
(integer) 0

获取指定索引:

127.0.0.1:6379> lindex list:1 2
"4"
127.0.0.1:6379> lrange list:1 0 -1
1) "2"
2) "1"
3) "4"

设置指定索引的值:

127.0.0.1:6379> lset list:1 2 100
OK
127.0.0.1:6379> lrange list:1 0 -1
1) "2"
2) "1"
3) "100"

只保留列表某一部分元素:

127.0.0.1:6379> ltrim list:1 0 1
OK
127.0.0.1:6379> lrange list:1 0 -1
1) "2"
2) "1"

插入:linsert [name] [after/before] [value] [new value]

复制代码
127.0.0.1:6379> lrange list:1 0 -1
1) "9"
2) "7"
3) "2"
4) "1"
127.0.0.1:6379> linsert list:1 before 2 100
(integer) 5
127.0.0.1:6379> lrange list:1 0 -1
1) "9"
2) "7"
3) "100"
4) "2"
5) "1"
复制代码

 

Set类型:

特点:不重复,无序

增删查:

复制代码
127.0.0.1:6379> sadd set a b c d
(integer) 4
127.0.0.1:6379> sadd set a
(integer) 0
127.0.0.1:6379> srem set d
(integer) 1
127.0.0.1:6379> smembers set
1) "c"
2) "b"
3) "a"
复制代码

差集运算:[1,2,3]和[2,3,4]的差集

复制代码
127.0.0.1:6379> sadd set1 1 2 3 
(integer) 3
127.0.0.1:6379> sadd set2 2 3 4 
(integer) 3
127.0.0.1:6379> sdiff set1 set2
1) "1"
127.0.0.1:6379> sdiff set2 set1
1) "4"
复制代码

交集运算:[1,2,3]和[2,3,4]的交集

127.0.0.1:6379> sinter set1 set2
1) "2"
2) "3"

并集运算:[1,2,3]和[2,3,4]的并集

127.0.0.1:6379> sunion set1 set2
1) "1"
2) "2"
3) "3"
4) "4"

原文地址https://www.cnblogs.com/xuyiqing/p/10565904.html

未经允许不得转载:阿里云代金券 » Redis安装及使用详解

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

强烈推荐

高性能SSD云服务器ECS抗攻击,高可用云数据库RDS