redis的安装,在ubuntu系统中,可以使用如下命令安装redis

sudo apt-get install redis-server

安装完毕后,会自动启动redis的服务端。使用ps命令可以查看redis服务运行情况

ps -aux|grep redis

 

设置redis客户端从远程访问,并设置密码,修改redis配置文件:

sudo vim /etc/redis/redis.conf

 

设置如下:

protected-mode no
port 6379
# bind 127.0.0.1 ::1
requirepass [设置密码]

设置完毕后,重启redis服务

sudo /etc/init.d/redis-server restart

 

客户端远程登录redis服务端命令:

redis-cli -h ip地址 -p 6379 -a 密码

 

 

Redis基于Reactor模式开发了网络事件处理器、文件时间处理器。他是单线程得,所以Redis才叫做是单线程模型。

 

1.Redis存储数据的结构

常用的5种数据结构

(1)key-string:一个key对于一个值。最常用的,一般存储一个值。

(2)key-hash:一个key对应一个Map。存储一个对象的数据。

(3)key-list:一个key对应一个列表。使用list结构实现栈和队列。

(4)key-set:一个key对应一个集合。实现集合的交集、并集、差集等。

(5)key-zset:一个key对应一个有序的集合。排行榜,积分存储等。

另外三种数据结构:

HyperLogLog:计算近似值

GEO:地理位置

BIT:位图,一般存储的也是一个字符串,存储的是一个byte[]

 

命令文档:Redis 命令参考 — Redis 命令参考 (redisdoc.com) 

2.string常用命令

 1 # 1、添加值
 2 set key value
 3 
 4 #2、取值
 5 get key
 6 
 7 #3、批量操作
 8 mset key value [key value...]
 9 mget key [key...]
10 #4、自增命令(自增1)
11 incr key
12 
13 #5、自减命令(自减1)
14 decr key
15 
16 #6、自增或自减指定数量
17 incrby key increment
18 decrby key increment
19 #7、设置值的同时设置生存时间(每次向redis中添加数据时,尽量都设置生存时间)
20 setex key second value
21 
22 #8、设置值,如果当前key不存在的话(如果这个key存在,什么事都不做,如果这个key不存在,和set命令一样)
23 setnx key value
24 set key value nx ex second #上锁的同时设置过期时间
25 #9、在key对应的value后,追加内容
26 append key value
27 
28 #10、查看value字符串的长度
29 strlen key

 

3.hash常用命令

 1 #1、存储数据
 2 hset key field value
 3 
 4 #2、获取数据
 5 hget key field
 6 
 7 #3、批量操作
 8 hmset key field value [field value ...]
 9 hmget key field [field ...]
10 #4、自增(指定自增的值)
11 hincrby key field increment
12 #5、设置值(如果key-field不存在,那么就正常添加,如果存在,什么事都不做)
13 hsetnx key field value
14 
15 #6、检查field是否存在
16 hexists key field
17 
18 #7、删除key对应的某个或多个field
19 hdel key field [field...]
20 #8、获取当前hash结构中的全部field和value
21 hgetall key
22 
23 #9、获取当前hash结构中的全部field
24 hkeys key
25 
26 #10、获取当前hash结构中的全部value
27 hvals key
28 
29 #11、获取当前hash结构中field的数量
30 hlen key

 

4.list常用命令

 1 #1、存储数据(从左侧插入数据,从右侧插入数据)
 2 lpush key value [value...]
 3 rpush key value [value...]
 4 
 5 #2、存储数据(如果key不存在,什么事都不做,如果key存在,但是不是list机构,什么都不做)
 6 lpushx key value
 7 rpushx key value
 8 
 9 #3、修改数据(修改指定索引位置的值,如果index超出整个列表的长度会失败)
10 lset key index value
11 #4、弹栈方式获取数据(左侧/右侧弹出数据)
12 lpop key
13 rpop key
14 
15 #5、获取指定索引范围的数据(start从0开始,stop输入-1,代表最后一个,-2代表倒数第二个)
16 lrange key start stop
17 
18 #6、获取指定索引位置的数据
19 lindex key index
20 
21 #7、获取整个列表的长度
22 llen key
23 #8、删除列表中的数据(他是删除当前列表中的count个value值,count>0从左侧向右侧删除,count<0从右侧向左侧删除),count=0,删除列表全部的value
24 lrem key count value
25 
26 #9、保留列表中的数据(保留指定范围内的数据,超过整个索引范围被移除掉)
27 ltrim key start stop
28 
29 #10、将一个列表中最后的一个数据,插入到另外一个列表的头部位置
30 rpoplpush list1 list2

 

5.set常用命令

 1 #1、存储数据
 2 sadd key member [member...]
 3 
 4 #2、获取数据(获取全部数据)
 5 smembers key
 6 
 7 #3、随机获取一个数据(获取的同时移除数据,count默认为1,代表弹出数据的数量)
 8 spop key [count]
 9 #4、交集(取多个set集合交集)
10 sinter set1 set2...
11 
12 #5、并集(获取全部集合中的数据)
13 sunion set1 set2...
14 
15 #6、差集(获取多个集合中不一样的数据,使用第一个集合进行取进行比较)
16 sdiff set1 set2...
17 #7、删除数据
18 srem key member [member...]
19 
20 #8、查看当前的set集合中是否包含这个值
21 sismember key member

 

6.zset常用命令

 1 #1、添加数据(score必须是数值,member不允许重复)
 2 zadd key score member [score member...]
 3 
 4 #2、修改member的分数、(如果member是存在于key中的,正常增加分数,如果member不存在,这个命令相当于zadd)
 5 zincrby key increment member
 6 #3、查看指定的member的分数
 7 zscore key member
 8 
 9 #4、获取zset中数据的数量
10 zcard key
11 
12 #5、根据score的范围查询member数量
13 zcount key min max
14 
15 #6、删除zset中的成员
16 zrem key member [member...]
17 #7、根据分数从小到大排序,获取指定范围内的数据(withscores如果添加这个参数,那么会返回member对应的分数)
18 zrange key start stop [withscores]
19 
20 #8、根据分数从大到小排序,获取指定范围内的数据(withscores如果添加这个参数,那么会返回member对应的分数)
21 zrevrenge key start stop [withscores]
22 
23 #9、根据分数的范围获取member(withscores代表同时返回score,添加limit,就和MySQL中一样,如果不希望等于min或者max的值被查询出来,可以采用‘(分数’ 相当于<或者>,但不等于,是一个开区间,最大值和最小值使用+inf和-inf来标识)
24 zrangebyscore key min max [withsores] [limit offset count]
25 
26 #10、根据分数的范围获取member(withscores代表同时返回score,添加limit,就和MySQL中一样)
27 zrevrangebyscore key max min [withsores] [limit offset count]

 

7.key常用命令

 1 #1、查看Redis中的全部key(pattern:*,xxx*,*xxx)
 2 keys pattern
 3 
 4 #2、查看某一个key是否存在(1 - key存在,0 - key不存在)
 5 exists key
 6 
 7 #3、删除key
 8 del key [key...]
 9 #4、设置key的生存时间,单位为秒,单位为毫秒.
10 expire key second
11 pexpire key milliseconds
12 
13 #5、设置key的生存时间,单位为秒,单位为毫秒,设置能活到什么时间点
14 expireat key timestamp
15 pexpireat key milliseconds
16 
17 #6、查看key的剩余生存时间,单位为秒,单位为毫秒(-2 - 当前key不存在;-1 - 当前key没有设置生存时间;具体的生存时间)
18 ttl key
19 pttl key
20 
21 #7、移除key的生存时间(1 - 移除成功,0 - key不存在生存时间,key不存在)
22 persist key
23 #8、选择操作的库
24 select 0~15
25 
26 #9、移动key到另外一个库中
27 move key db

 

8.库常用命令

 1 #1、清空当前所在的数据库
 2 flushdb
 3 
 4 #2、清空全部数据库
 5 flushall
 6 
 7 #3、查看当前数据库中有多少个key
 8 dbsize
 9 
10 #4、查看随后一次操作的时间
11 lastsave
12 
13 #5、实时监控Redis服务接收到的命令
14 monitor

 

posted on 2021-02-02 16:29  Sempron2800+  阅读(78)  评论(0编辑  收藏  举报