准备

自己有购买云服务器的小伙伴可以将redis安装到服务器上,跟你安装到windows上的虚拟机是一样的。
1、进入redis官网下载最新的版本

2、因为redis运行需要gcc环境,我们可以通过Xshell操作远程服务器通过yum命令来安装

yum install centos-release-scl-utils-build
yum install -y devtoolset-8-toolchain
scl enable devtoolset-8 bash

安装完可以通过命令gcc --version 查看版本信息

3、新建一个文件夹存放redis

mkdir redisfile

4、新建文件传输窗口将下载的压缩包上传到服务器

查看已经上传的压缩包

[root@VM-12-13-centos /]# cd redisfile/
[root@VM-12-13-centos redisfile]# ll
total 2928
-rw-r--r-- 1 root root 2994242 Jul 31 16:29 redis-7.0.4.tar.gz
[root@VM-12-13-centos redisfile]#

安装

1、解压

cd /redisfile
tar -zxvf redis-7.0.4.tar.gz

2、解压完成后,进入redis-7.0.4 使用make命令进行编译

cd redis-7.0.4
make

没有gcc环境会报错,-Jemalloc/jemalloc.h:没有那个文件,解决:执行make distclean 命令,等待gcc安装完成,看到版本信息后,再次执行make

编译完成

3、跳过make test 继续执行make install

完成上述步骤已经安装成功了

4、查看安装目录,默认的安装路径在/usr/local/bin

cd /usr/local/bin

5、目录结构

 redis-check-aof:修复有问题的AOF文件,redis-benchmark:性能测试文件

使用

  1. 前台启动(不推荐,前台启动,命令行窗口不能关闭,否则服务器停止)
  2. 后台启动(推荐)

后台启动

1、备份redis.conf ,复制一份到其他目录

2、把复制户的redis.conf 文件的 daemonize no 改成yes

vim /redisfile/myredis/redis.conf


保存,退出

:wq

启动

cd /usr/local/bin/
redis-server /redisfile/myredis/redis.conf
查看进程:ps -ef | grep redis


测试联通状态;

redis-cli
ping   //出现PONG,说明是正常的

关闭(多种关闭方式)

shutdown
//exit
//或着找到对应的进程号,kill -9 13720

redis相关知识介绍

redis默认有0~15共16个数据库,可以通过select index切换,比如我们切换到15号

select 15
  1. 默认初始使用0号库
  2. 使用命令select index切换,eg:select 15
  3. 统一密码管理,所有的库密码相同
  4. dbsize查看当前数据库的key数量
  5. flush清空当前库
  6. flushall通杀全部库
  7. redis是单线程+多路IO复用技术
  8. memcache是多线程+锁
    Redis与Memcache三点不同:支持多数据类型,支持持久化,单线程+多路IO复用

Redis键–key

  1. keys * ——查看当前所有key(匹配:keys *1)
  2. exists key——判断某个key是否存在
  3. type key —— 查看key类型
  4. del key——删除指定的key数据
  5. unlink key —— 根据value选择非阻塞删除(仅仅将keys从keyspace元数据中删除,真正删除会在后面异步操作)
  6. expire key time——为给定的key设置过期时间(time 单位为秒,eg:expire k1 10)
  7. ttl key 查看key的还有多少秒过期,返回值:-1表示永不过期,-2表示已经过期。
  8. select命令 ——切换数据库
  9. dbsize——查看当前数据库的key的数量
    10.flushdb——清空当前库,flushall——通杀所有库

1、常用五大数据类型

字符串(String)

1、简介

  • String是Redis最基本的类型,与MeMcached类似,一个key对应一个value。
  • String类型是二进制安全的,意味着Redis的string可以包含任何数据类型,比如jpg图片或者序列化的对象。
  • String类型是Redis最基本的数据类型,一个Redis中字符穿value最多可以是512M

2、常用命令

  set  <key>  <value> *NX: 当数据库中key不存在时,可以将key-value添加到数据库。*XX:当数据库中key存在时,可以将key-value添加到数据库,与NX参数互斥。*EX:key的超时秒数。*PX:key的超时毫秒数,与EX互斥。get <key> :查询对应key的value值。append <key> <value> 将给定的<value>追加到原值的末尾。(当value为多个单词的字符串时用双引号引起来)strlen <key>:获取值的长度。setnx <key><value>只有在key不存在时,设置为key的值。incr <key> 将key中存储的数字(原子操作值两个线程间互不影响)增1,只能对数字值操作,如果为空,新增值为1decr <key> 将key中存储的数字值减1,只能对数字操作,如果为空,性增值为-1incrby/decrby <key> <步长> 将key中存储的数字值增减,自定义步长。mset <key1> <key2> …… :同时设置多个值。mget <key1> <key2> …… :同时获取一个或多个值。msetnx  <key1> <key2> ……:同时设置一个或多个key-value对,当且仅当所有给定的key都不存在。(原子性,有一个失败则都失败。)注意:java中两个线程的i++操作不是不是原子操作,操作数的结果为(线程数~线程数*单线程执行次数)所谓原子操作是指不会被线程调度机制打断的操作,这种操作一旦开始,就一直运行到结束,中间不会有任何context switch(切换到另一个线程)(1)在单线程中,能够在单条指令中完成的操作都可以认为是“原子操作”,因为中断只发生于指令之间。(2)在多线程中,不能被其他进程(线程)打断的操作就叫原子操作。(Redis单命令的原子性主要得益于Redis的单线程)getrange  <key>  <起始位置>  <结束位置>:获得值的范围,类似java中的substring,前包,后包。setrange  <key> <起始位置>  <结束位置>:用<value>覆写所存储的字符串值,从<起始位置>开始(索引值从0开始)setex <key>  <过期时间>  <value>  设置键值的同时设置过期时间,单位秒。getset <key> <value> 以新换旧,设置了新值同时获得旧值。
[root@VM-12-13-centos ~]# redis-cli
127.0.0.1:6379> keys *
1) "k3"
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set k1 jack
OK
127.0.0.1:6379> set k2 locy
OK
127.0.0.1:6379> set k3 daming
OK
127.0.0.1:6379> keys *
1) "k3"
2) "k2"
3) "k1"
127.0.0.1:6379> get k1
"jack"
127.0.0.1:6379> get k2
"locy"
127.0.0.1:6379> append k1 is a handsome boy
(error) ERR wrong number of arguments for 'append' command
127.0.0.1:6379> append k1 "is a handsome boy"
(integer) 21
127.0.0.1:6379> get k1
"jackis a handsome boy"
127.0.0.1:6379> strlen k1
(integer) 21
127.0.0.1:6379> strlen k2
(integer) 4
127.0.0.1:6379> setnx k1 v2
(integer) 0
127.0.0.1:6379> get k1
"jackis a handsome boy"
127.0.0.1:6379> setnx k4 v200
(integer) 1
127.0.0.1:6379> incr k4
(error) ERR value is not an integer or out of range
127.0.0.1:6379> set k5 100
OK
127.0.0.1:6379> get k5
"100"
127.0.0.1:6379> incr k5
(integer) 101
127.0.0.1:6379> decr k5
(integer) 100

3、底层数据结构
String的数据结构,为简单动态字符穿(SDS) ,是可以修改的字符串,内部结构实现类似于java的ArrayList,采用预分配冗余空间的方式来减少内存的频繁分配。

列表List

简介:单键多值

  • Redis列表是简单的字符串列表,按照插入顺序排序,你可以通过添加一个元素到列表的头部(左边)或者尾部(右边)。
  • 它的底层实际是双向链表,对两端的操作性能很高,通过索引下标操作中间的节点性能会较差。

常用命令

lpush/rpush <key>  <value1> <value2>……从左边/右边插入一个或多个值。
lpop/rpop <key> 从左边/右边吐出一个值,值在键在,值光键亡rpoplpush <key1> <key2> :从<key1>列表右边吐出一个值,插到<key2>列表的左边。
lrange <key> <start> <stop>  :按照索引下标获得元素(从左到右)lrange mylist 0 -1   :0表示左边第一个,-1表示右边第一个(0-1 表示获取所有)
lindex <key> <index> 按照索引下标获得元素(从左到右)
llen <key> 获得列表长度linsert  <key> before/after <value><newvlue>在<value>的前面/后面插入<newvalue>插入值。
lrem <key> <n> <value> 从左边删除n个value(从左到右)
lset <key><index><value>将列表key下标为index的值替换为value。

数据结构
List的数据结构为快速链表quickList,首先在列表元素较少的情况下会使用一块连续的内存存储,这个结构是ziplist,也就是压缩列表。
它将所有的元素紧挨着一起存储,分配的是一块连续的内存。
当数据量比较多的时候才会改成quicklist。
因为普通的链表需要的附加指针空间太大,会比较浪费空间,比如这个列表里存的只是int类型的数据,结构上还需要两个额外的只针prev和next。

Set集合

1、简介

2、常用命令

sadd <key> <value1> <value2> ……:将一个或多个member元素加入到集合key中,已经存在的member元素将被忽略。
smembers <key> 取出该集合的所有值。
sismember  <key> <value>  :判断集合《key》是否含有该<value> 值,有1,没有0.
scard  <key> :返回该集合的元素个数。
srem <key> <value1> <value2>……  :删除集合中的某个元素。
spop <key> 随机从该集合中吐出一个值。
srandmember  <key> <n> :随机从该集合中取出n个值,不会从集合中删除。smove <source> <destination> value  :把集合中一个值从一个集合移动到另一个集合。
sinter <key1> <key2>  返回两个集合的交集。
sunion <key1> <key2> 返回两个集合的并集。
sdiff  <key1><key2> 返回两个集合的差集元素(key1中的,不包含key2中的)

使用;

127.0.0.1:6379> sadd set1 m1 m2 m3 m4
(integer) 4
127.0.0.1:6379> smembers set1
1) "m2"
2) "m1"
3) "m4"
4) "m3"
127.0.0.1:6379> sismember set1 m2
(integer) 1
127.0.0.1:6379> sismember set1 m9
(integer) 0
127.0.0.1:6379> scard set1
(integer) 4
127.0.0.1:6379> srem set1 m1 m2
(integer) 2
127.0.0.1:6379> scard set1
(integer) 2
127.0.0.1:6379> sadd set1 m1 m2 m3 m4
(integer) 2
127.0.0.1:6379> smembers set1
1) "m4"
2) "m3"
3) "m1"
4) "m2"
127.0.0.1:6379> spop m3
(nil)
127.0.0.1:6379> spop set1
"m3"
127.0.0.1:6379> spop set1
"m1"
127.0.0.1:6379> srandmember <key> 2
(empty array)
127.0.0.1:6379> srandmember set1 2
1) "m2"
2) "m4"
127.0.0.1:6379> scard set1
(integer) 2
127.0.0.1:6379> sadd set2 m1 m2 m3 m4 m5 m6 m7 s8 s9
(integer) 9
127.0.0.1:6379> sadd set3 s1 s2 s3 s4 s5
(integer) 5
127.0.0.1:6379> smove set3 set2  s3
(integer) 1
127.0.0.1:6379> smembers k2
(error) WRONGTYPE Operation against a key holding the wrong kind of value
127.0.0.1:6379> smembers set21) "m3"2) "m6"3) "m5"4) "m1"5) "m2"6) "m4"7) "s8"8) "m7"9) "s3"
10) "s9"
127.0.0.1:6379> sinter set2 set3
(empty array)
127.0.0.1:6379> sinter set2 set1
1) "m2"
2) "m4"
127.0.0.1:6379> sunion set2 set31) "s1"2) "s8"3) "s4"4) "m3"5) "m6"6) "s2"7) "m7"8) "s5"9) "m5"
10) "s3"
11) "s9"
12) "m2"
13) "m1"
14) "m4"
127.0.0.1:6379> sdiff set2 set1
1) "s8"
2) "m7"
3) "m6"
4) "m3"
5) "s3"
6) "m5"
7) "s9"
8) "m1"

3、数据结构
Set数据结构是dict字典,字典是用哈希实现的。java中的hashSet的内部实现用的是HashMap,只不过所有的value都指向同一个对象。Redis的set结构也是一样,它内部也是用hash结构,所有的value都指向同一个内部值。

Redis的Hash结构

1、简介

  1. Redis hash是一个键值对集合。
  2. Redis hash是一个string类型的field和value的映射表,hash特别适合用于存储对象。
  3. 类似java里面的Map<String,Object>

2、常用命令

hset <key> <field> <value> 给<key>集合中的<field>键赋值<value>
hget <key1> <fielld> 从<key1>集合<field> 取出 value
hmset <key1> <field1> <value1>   <key2> <field2> <value2>  ……: 批量设置hash的值。
hexists <key1> <field> 查看哈希表key中,给定域field是否存在。
hkeys  <key>列出该hash集合的所有field
hvals  <key>列出该hash集合的所有value
hincrby  <key><field><increment> 为哈希表key中的域field的值加上增量x /-x
hsetnx  <key><field><value> 将哈希表key中的域field的值设置为value,当且仅当域field不存在。

eg:

[root@VM-12-13-centos ~]# redis-cli
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> hset user:1001 id 1
(integer) 1
127.0.0.1:6379> hset user:1001 name zhangsan
(integer) 1
127.0.0.1:6379> hget user:1001 id
"1"
127.0.0.1:6379> hget user:1001 name
"zhangsan"
127.0.0.1:6379> hmset user:1002 id 2 name lisi age 30
OK
127.0.0.1:6379> hget user:1002
(error) ERR wrong number of arguments for 'hget' command
127.0.0.1:6379> hget user:1002 id
"2"
127.0.0.1:6379> hget user:1002 name
"\x8dlisi"
127.0.0.1:6379> hexists user1002 id
(integer) 0
127.0.0.1:6379> hexists user:1002 id
(integer) 1
127.0.0.1:6379> hkeys user:1002
1) "id"
2) "name"
3) "age"
127.0.0.1:6379> hkeys user:1001
1) "id"
2) "name"
127.0.0.1:6379> hvals user:1002
1) "2"
2) "\x8dlisi"
3) "30"
127.0.0.1:6379> hvals user:1001
1) "1"
2) "zhangsan"
127.0.0.1:6379> hincrby user:1002 age 2
(integer) 32
127.0.0.1:6379> hincrby user:1002 age 3
(integer) 35
127.0.0.1:6379> hsetnx user:1002 age 40
(integer) 0
127.0.0.1:6379> hsetnx user:1002 sex men
(integer) 1
127.0.0.1:6379> hkeys user:1002
1) "id"
2) "name"
3) "age"
4) "sex"

3、数据结构
Hash类型对应的数据结构是两种:ziplist(压缩列表),hashtable(哈希表)。当field-value长度较短且个数较少时,使用ziplist,否则使用hashtable。

Redis有序 集合Zset

1、简介
Redis有序集合zset与普通集合set非常相似,是一个没有重复元素的字符串集合。
不同之处时有序集合的每个成员都关联了一个评分(score) ,这个评分被用来按照从最低分到最高分的方式排序集合中的成员,集合的成员是唯一的,但是评分可以是重复的。

因为元素是有序的,所以你也可以很快的根据评分或者次序来获取一个范围的元素。
访问有序集合的中间元素也是非常快的,因此,你能够使用有序集合作为一个没有重复成员的只能列表。

2、常用命令

zadd  <key> <score1> <value> <score2> <vaule2> …… :将一个或者多个member元素及其score值加入到有序集key当中。
zrange  <key> <stat> <stop> [WITHSCORE] :返回有序集key中,下标在start stop之间的元素,带WITHSCORE,可以让分数一起和值返回到结果集。
zrangebyscore key min max [withscores]  [limit offset count]:返回有序集key中,所有score值介于min和max之间 ,(包括都等于min或max的成员)zrevrangebyscore key max min [withscores] [limit off set count]
同上,改为从大到小排列。
zincrby <key> <increment> <value>  为元素的score加上增量。
zrem <key>  <value> :删除该集合下,指定值的元素。
zcount  <key><min><max>  统计该集合,分数区间内的元素个数。
zrank  <key> <value> 返回该值在集合中的排名,从0开始。

利用redis制作排行榜

zrange top 0 -1 withscores

3、数据结构

  1. hash:hash的作用就是关联元素value和权重score,保障value的唯一性,可以通过元素value找到相应的score值。
  2. 跳跃表:跳跃表的目的在于给元素value排序,根据score的范围获取元素列表。
    跳跃表(跳表)
    简介:
    有序集合在生活中比较常见,例如根据成绩对学生排名,根据得分对玩家排名等,对于有序集合的底层实现,可以使用数组,平衡树,链表等,数据不便元素插入,删除;平衡树或红黑树虽然效率高但结构复杂;链表查询需要遍历所有效率低,Redis使用跳跃表,效率堪比红黑树,且结构比红黑树简单。

Redis配置文件redis.conf

units 配置大小单位,开头定义了一些基本单位,只支持bytes,不支持bit大小写不敏感

# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes

INCLUDES 包含

类似于jsp中的include ,多实例的情况可以把公用的配置文件提取出来。
bind 网络相关的配置

默认情况下 bind = 127.0.0.1 只能接受本机的访问请求
不写的情况下,无限制接收任何IP地址的访问。即支持远程连接。
生产环境下肯定要写你应用服务器的地址,服务器是需要远程访问的,所以需要将其注释掉。
如果开启了protected-mode,那么在没有设定bind ip且没有密码的情况下,Redis只允许接收本机的相应。反之支持远程访问。
Port 端口

默认端口是6379
tcp-backlog

  • 设置tcp的backlog,backlog其实是一个连接队列,backlog队列总和=未完成三次握手队列+已经完成三次握手队列。
  • 在高并发环境下你需要一个高backlog值来避免慢客户端连接问题。
  • 注意Linux内核会将这个值减小到/proc/sys/net/core/somaxconn的值(128) ,所以需要确认增大/proc/sys/net/core/somaxconn和/proc/sys/net/ipv4/tcp_max_syn_backlog(128)两个值来达到想要的效果。

pidprofile
记录与redis运行的进程号相关。
loglevel
日志级别:notice、debug、verbose、warning四种级别
logfile
设置日志文件输出的路径,默认为空。
databases
redis默认的数据库数量。
security 安全

  • 访问密码的查看,设置和取消。
  • 在命令中设置密码,只是临时的,重启redis服务器,密码就 还原了。
    LIMITS 限制
  • 设置redis同时可以与多少个客户端进行连接。
  • 默认情况下为10000个客户端。
  • 如果达到了限制,redis则会拒绝新的连接请求,并向这些连接请求方发出“max number of clients reached"以做回应。
    maxmemory
  • 建议必须设置,否则,将内存占满,造成服务器宕机。
  • 设置redis可以使用的内存量,一旦 到达内存使用上限,redis将会试图移除内部数据,移除规则可以通过maxmemory- policy来指定。

发布和订阅

简介:
Redis发布订阅(pub/sub)是一种消息通信模式,发送者发送信息,订阅者接收信息。
redis客户端可以订阅任意数量的频道。

/usr/local/bin/redis-cli   //开启两个客户端
SUBSCRIBE channel1   //客户端1订阅频道channel1
publish channel1 "hello redis"   //客户端2发送消息"hello redis"  

发布:

订阅:

Redis新数据类型

Bitmaps
关于Bitmaps的相关搜索1
关于Bitmaps的相关搜索2
HyperLogLog
简介
在工作当中,我们经常会遇到与统计相关的功能需求,比如统计网站,PV(PageView页面访问量),可以使用Redis的incr、incrby轻松实现。
但是像UV独立访客,独立IP数、搜索记录数等需要去重和计数问题如何 解决?这种求集合中不重复的元素个数的问题称为基数问题。
解决方案:
(1) 数据存储在MySQL表中,使用distinct count计算不重复的个数。
(2)使用Redis提供的hash 、set、 bitmaps等数据结构来处理。
以上的方案结果是精确的,但是随着数据不断增加,导致占用内存空间越来越大,对于非常大的数据集是不切实际的。
能否能够降低一定的精度来平衡存储空间?Redis推出了HyperLogLog
Redis HyperLogLog是用来做基数统计的算法,HyperLogLog的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需要的空间总是固定的,并且是很小的。
在Redis里面,每个HyperLogLog键只需要花费12kb内存,就可以计算接近2^64个不同元素的基数,这和计算基数时,元素越多耗费内存越多的集合形成鲜明的对比。
但是,因为HyperLogLog只会根据输入元素来计算基数,而不会存储输入的元素本身,所以HyperLogLog不能像集合那样,返回输入的各个元素。

命令
格式

pfadd <key> <element> ……

作用:添加指定元素到HyperLogLog中。

实例:成功返回1,不成功返回0

[root@VM-12-13-centos ~]# redis-server /redisfile/myredis/redis.conf
[root@VM-12-13-centos ~]# /usr/local/bin/redis-cli
127.0.0.1:6379> pfadd program "java"
(integer) 1
127.0.0.1:6379> pfadd program "php"
(integer) 1
127.0.0.1:6379> pfadd program "java"
(integer) 0
127.0.0.1:6379> pfadd program "c++" "mysql"
(integer) 1
pfcount  <key>   //计算HLL的近似基数,可以计算多个HLL,比如用HLL存储每天的UV,计算一周的UV可以使用7天的UV合并计算即可。prmerge <destey> <sourcekey>  [sourcekey] //将一个或多个HLL合并后的结果存储到另一个HLL中,比如每月活跃用户可以使用每天的活跃用户合并计算可得。

Geospatial
简介
Redis中增加了对GEO类型的支持,GEO,Geographic,地理信息的缩写。
该类型,就是元素的2维坐标,在地图上就是经纬度,redis基于该类型,提供 了经纬度设置、查询、范围查询、距离查询、经纬度hash等常见操作。
命令
1、geoadd
格式:geoadd [logitude latitude member……]
说明:添加地理位置(经度-纬度-名称)
实例

geoadd china:city 121.47  31.23  shanghai
geoadd china:city 106.50  29.53  chongqing  114.05 22.52 shenzhen 116.38 39.90 beijing  ……

两极无法添加,一般会下载城市数据,直接通过java程序一次导入。
有效的经纬度从-180° 到 180° ,有效纬度从-85.05112878°到85.05112878°
当坐标位置超出指定范围时,该命令会返回一个错误。
已添加的数据,是无法再添加 的。

2、geopos
格式:geopos [member ……]
说明:获取指定的地区坐标值。

geopos china:city shanghai

3、geodist
格式:

geodist <key> <member1> <menber2> [m|mk|ft|mi]

说明:获取两个位置之间的直线距离

127.0.0.1:6379> geodist china:city guangzhou chongqing km
"1666.9766"

m:米
km:千米
mi:英里
ft:英尺
默认用米作为单位。
4、georadius
格式:

georadius key  logitude latitude radius m|km|ft|mi

说明:以给定的经纬度为中心找出某一半径内的元素。

实例:

127.0.0.1:6379> georadius  china:city 110 30 1000 km
1) "chongqing"

Redis_Jedis连接使用

使用Jedis连接远程的Redis时,需要将redis.conf 文件中的bind 127.0.0.0 注释掉,关闭保护模式 修改为: protected-mode no,若无法连接则是服务器端口没有开放6379端口。开放端口即可(若是虚拟机中的关闭防火墙并重启redis)

1、引入依赖

    <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.2.0</version></dependency>

2、新建测试类


import redis.clients.jedis.Jedis;public class jedisTest {public static void main(String[] args) {//        创建Jedis对象Jedis jedis = new Jedis("IP地址",6379);
//        测试String msg = jedis.ping();System.out.println(msg);
//输出结果为PONG则表示成功}//    操作key@Testpublic void demo1() {Jedis jedis = new Jedis("43.142.131.251", 6379);jedis.set("key1","v1");jedis.set("key2","v2");jedis.set("key3","v3");Set<String> keys = jedis.keys("*");System.out.println(keys.size());for (String key : keys) {System.out.println("key------->" + key);}System.out.println(jedis.exists("key1"));System.out.println(jedis.ttl("key1"));System.out.println(jedis.get("key1"));//        设置多个key-valuejedis.mset("k1","v1","k2","v2");List<String> mget = jedis.mget("k1","k2");System.out.println(mget);}//    操作list@Testpublic void demo2() {Jedis jedis = new Jedis("43.142.131.251", 6379);jedis.lpush("kk1","lucy","mary","jack");List<String> value = jedis.lrange("kk1",0,-1);System.out.println(value);}//    操作set@Testpublic void demo3() {Jedis jedis = new Jedis("43.142.131.251", 6379);jedis.sadd("name","lisi","jack");Set<String> strings = jedis.smembers("name");for (String string:strings) {System.out.println(string);}}//    操作hash@Testpublic void demo4() {Jedis jedis = new Jedis("43.142.131.251", 6379);jedis.hset("users","age","20");jedis.hset("users","name","liHua");String hget1 = jedis.hget("users","age");String hget2 = jedis.hget("users","name");System.out.println(hget1+hget2);}//    操作zset@Testpublic void demo5() {Jedis jedis = new Jedis("43.142.131.251", 6379);jedis.zadd("china",100,"shanghai");Set<String> china = jedis.zrange("china", 0, -1);System.out.println(china);}}

在服务器上安装Redis及其使用笔记相关推荐

  1. centos6安装mysql并远程连接_阿里云服务器上安装redis并实现远程连接

    一.概述 之前一直将redis安装在本地,为了在服务器上使用redis进行数据的存储,需要在服务器端进行redis的安装,本次使用的是阿里云服务器,由于是第一安装,在安装及后续远程连接过程中也遇到一些 ...

  2. du -sh 如何找到最大的文件夹_小白必看!手把手教你如何在linux上安装redis数据库...

    首先我们要清楚redis是什么? redis是一种非关系型数据库,它与MySQL的这种关系型数据库不同,MySQL是将数据存储在磁盘中,而redis是储存在内存中.一般很多公司都是使用MySQL+re ...

  3. 在Windows上安装Redis教程,超简单!!!

    文章目录 1. Redis 概念 1.1 什么是 Redis ? 1.2 Redis 在前后端分离中的作用 2. 在 Windows 上安装 Redis 2.1 安装 WLS 2(适用于 Linux ...

  4. 在 Win10 上安装 Redis 4.0 的两种姿势

    Redis 是完全开源免费,遵守 BSD 协议的一个高性能的 key-value 数据库. 1. 使用 msi 安装 Redis 2. 在 WSL 上安装 Redis 2.1 准备工作 2.2 安装 ...

  5. onlyoffice文件服务器安装,在本地服务器上安装Windows版ONLYOFFICE Integration Edition

    介绍 Integration Edition允许您在本地服务器上安装Document Server,并将在线编辑器与Web应用程序集成. Document Server是一个在线办公套件,包括用于文本 ...

  6. 阿里云服务器上安装EMQ,并利用mqttfx连接使用EMQ

    阿里云个人windows云服务器上安装EMQ服务,并利用mqttfx工具连接使用EMQ服务器 前言 一.如何拥有属于自己的阿里云Windows云服务器 1.阿里云ECS云服务器获取途径 2.阿里云云服 ...

  7. 阿里云服务器 Ubuntu安装Redis

    阿里云服务器 Ubuntu安装Redis 第一步,下载Redis 首先,去Redis官网下载最新版的Redis压缩包,下载地址Redis,目前最新版的Redis稳定版本已经更新到6.2.6了 第二步, ...

  8. 解决云服务器上的redis端口不通以及设置redis的bind地址后启动失败问题

    ---------------------------------------------------2021-11-20更新------------------------------------- ...

  9. 在Linux系统上安装Redis客户端报错:In file included from adlist.c:34 zmalloc.h:50:31: error: jemalloc......

    在Centos6.9系统上安装redis客户端时报错,步骤如下: 1.下载redis客户端源码包: wget  http://download.redis.io/releases/redis-3.0. ...

最新文章

  1. LAMP 关键数据集锦技术选项参考
  2. 如何隐藏system函数的窗口
  3. vs2013 error MSB8031 MBCSMFC问题的解决
  4. impdp导入数据时出现BUG
  5. 这套前端可视化框架,让数据栩栩如生!
  6. 第十五天 图【下】(大结局)
  7. Linux移植随笔:对tslib库的ts_test测试程序代码的一点分析
  8. Join的实现步骤 以及连接的概念
  9. Android:实现弹窗效果
  10. 数学分析(9): 不定积分
  11. 液晶显示屏工作原理和点亮屏幕
  12. 百度云语音合成 Python SDK
  13. @Adaptive注解
  14. 计算机开机慢更新配置,系统开机慢?教你如何提高电脑开机速度!
  15. Git 技术篇 - github镜像推荐,无需翻墙实现飞速访问github官网
  16. 大佬带你看源码!BTAJ大厂最新面试题汇集,已拿offer附真题解析
  17. 未来人工智能产品的思维,主要有哪几个趋势
  18. # Windows下关于安装Geany编辑器过程中的一点小发现(可能对初次安装的人有用)
  19. 自定义Drawable实现灵动的红鲤鱼动画(上篇)
  20. 【网站】IIS配置/搭建PHP环境的网站教程

热门文章

  1. IT 认证考试--软考--(中级项目)嵌入式系统设计师2:考试大纲【含免帐号免积分下载链接】
  2. 油田选址问题matlab,油田选址问题完整解答(内附完整代码)
  3. Crasheye使用 - 更强大的【搜索】
  4. PHP Web程序设计与Ajax技术pdf
  5. 优秀的Linux文本编辑器
  6. signature=152c7128f5309ebd73e4a1d7e8516c1b,交流传动内燃机逻辑控制单元的开发设计
  7. 一个 DAG 工作流引擎的设计实现源代码实例
  8. 机器学习实战-2.1
  9. HTML5基础教程(20)Video(视频)
  10. java mini_miniui_java - WEB源码|源代码 - 源码中国