Redis数据库

Redis安装

安装redis
redis是基于c语言编译的
wget http://download.redis.io/releases/redis-4.0.6.tar.gz
tar -zxf redis-4.0.6.tar.gz
yum install -y gcc
cd redis-4.0.6
make MALLOC=libc
cd src/
make install
./redis-server

cd /opt/redis-4.0.6/src/
ls *-cli
./redis-cli -h 192.168.56.100 -p 6379

安全绑定
cd ..
vi redis.conf
	bind 127.0.0.1 -> bind 192.168.56.100
cd src/
./redis-server ../redis.conf
./redis-cli -h 192.168.56.100 -p 6379

Redis数据类型

支持五种数据类型
String(字符串)、hash(哈希)、list(列表)、set(集合)及zset(有序集合)。

String(字符串)

set lyx sleep
get lyx
del lyx

192.168.56.100:6379> set num 1
OK
192.168.56.100:6379> get num
"1"
192.168.56.100:6379> incr num     // 数字自增
(integer) 2
192.168.56.100:6379> get num
"2"
192.168.56.100:6379> decr num     // 数字自减
(integer) 1
192.168.56.100:6379> get num
"1"
192.168.56.100:6379> set num a
OK
192.168.56.100:6379> get num
"a"
192.168.56.100:6379> append num ',hello!'     // 拼接字符串
(integer) 8
192.168.56.100:6379> get num
"a,hello!"

hash(哈希)

192.168.56.100:6379> HMSET people name zhangsanfeng age 200 sex male
OK
192.168.56.100:6379> HMSET people name zhangwuji age 20 sex male
OK
192.168.56.100:6379> HMGET people name
1) "zhangwuji"
192.168.56.100:6379> HMGET people age
1) "20"

192.168.56.100:6379> hmset people id 1 name zsf age 300 sex male
OK
192.168.56.100:6379> hget people name
"zsf"
192.168.56.100:6379> hget people sex
"male"
192.168.56.100:6379> hdel people sex     // 删除某键
(integer) 1
192.168.56.100:6379> hget people sex
(nil)
192.168.56.100:6379> hgetall people
1) "id"
2) "1"
3) "name"
4) "zsf"
5) "age"
6) "300"
192.168.56.100:6379> hlen people    // 计算键值对的数量
(integer) 3
192.168.56.100:6379> hkeys people     // 拿键
1) "id"
2) "name"
3) "age"
192.168.56.100:6379> hvals people     // 拿值
1) "1"
2) "zsf"
3) "300"
栈:从后往前数
192.168.56.100:6379> lpush scores 30 40 50 60 70 80 90 100
(integer) 8
192.168.56.100:6379> lrange scores 0 2
1) "100"
2) "90"
3) "80"
192.168.56.100:6379> lindex scores 3
"70"
192.168.56.100:6379> lpush xx hello
(integer) 1
192.168.56.100:6379> lpush xx world
(integer) 2
192.168.56.100:6379> lrange xx 0 2
1) "world"
2) "hello"
192.168.56.100:6379> linsert xx after world hehe
(integer) 3
192.168.56.100:6379> lrange xx 0 2
1) "world"
2) "hehe"
3) "hello"
192.168.56.100:6379> linsert scores after 70 75
(integer) 9
192.168.56.100:6379> lrange scores 0 10
1) "100"
2) "90"
3) "80"
4) "70"
5) "75"
6) "60"
7) "50"
8) "40"
9) "30"
192.168.56.100:6379> lpop scores   // 移除头
"100"
192.168.56.100:6379> lrange scores 0 10
1) "90"
2) "80"
3) "70"
4) "75"
5) "60"
6) "50"
7) "40"
8) "30"
192.168.56.100:6379> lrem scores 1 75    // 删除第一个75
(integer) 1
192.168.56.100:6379> lrange scores 0 10
1) "90"
2) "80"
3) "70"
4) "60"
5) "50"
6) "40"
7) "30"
8) "75"
9) "50"
192.168.56.100:6379> ltrim scores 1 7   // 去掉首尾
OK
192.168.56.100:6379> lrange scores 0 10
1) "80"
2) "70"
3) "60"
4) "50"
5) "40"
6) "30"
7) "75"
192.168.56.100:6379> sadd test zs ls ww zl qi
(integer) 5
192.168.56.100:6379> scard test      // 获取成员数
(integer) 5
192.168.56.100:6379> sadd test1 zs ls sb qj
(integer) 4
192.168.56.100:6379> sdiff test test1    // 求test-test1差集
1) "qi"
2) "zl"
3) "ww"
192.168.56.100:6379> sdiff test1 test
1) "sb"
2) "qj"

List(列表)

192.168.56.100:6379> LPUSH scores 30 40 50 60
(integer) 4
192.168.56.100:6379> LRANGE scores 0 3
1) "60"
2) "50"
3) "40"
4) "30"
192.168.56.100:6379> LRANGE scores 0 2
1) "60"
2) "50"
3) "40"

Set(集合)

192.168.56.100:6379> sadd info kkk bbb ccc kkk
(integer) 3
192.168.56.100:6379> smembers info
1) "ccc"
2) "bbb"
3) "kkk"

192.168.56.100:6379> exists info
(integer) 1
192.168.56.100:6379> expire info 5   5s过期键
(integer) 1
192.168.56.100:6379> exists info
(integer) 0
192.168.56.100:6379> smembers info
(empty list or set)

192.168.56.100:6379> select 1
OK
192.168.56.100:6379[1]> select 15
OK
192.168.56.100:6379[15]> select 16   默认有16个hash库
(error) ERR DB index is out of range
192.168.56.100:6379[15]> select 0
OK

192.168.56.100:6379> set info 'zhangsanfeng is wudang'
OK
192.168.56.100:6379> get info
"zhangsanfeng is wudang"
192.168.56.100:6379> getrange info 0 11    // 截取字符串
"zhangsanfeng"
192.168.56.100:6379> getset info 'miejueshitai is emei'      // replace替换
"zhangsanfeng is wudang"
192.168.56.100:6379> get info
"miejueshitai is emei"
192.168.56.100:6379> strlen info   // 统计字符长度
(integer) 20

192.168.56.100:6379> sinter test test1     // 求交集
1) "ls"
2) "zs"
192.168.56.100:6379> sunion test test1    // 求并集
1) "sb"
2) "qi"
3) "ls"
4) "zs"
5) "qj"
6) "zl"
7) "ww"

java连接Redis

public class App 
{
    public static void main( String[] args )
    {
        Jedis jedis = new Jedis("192.168.56.100");
//        jedis.set("lyx","sleep");
//        System.out.println(jedis.get("lyx"));
//        jedis.lpush("xxx","zs","hehe","xixi");
        System.out.println(jedis.lrange("xxx",0,10));
    }
}

spark连接Redis

object rwRedis {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setMaster("local[*]")
      .setAppName("myredis")
      .set("spark.redis.host","192.168.56.100")
    val sc = new SparkContext(conf)
//    val res = sc.fromRedisKV("eee")
//    val res = sc.fromRedisList("xxx")
//    val res = sc.fromRedisHash("people")
    val res = sc.fromRedisSet("infoxu")
    res.foreach(println)

//    val spark = SparkSession.builder().appName("ttt").master("local").getOrCreate()
//    val jd = new Jedis("192.168.56.100")
//    val dd = jd.lrange("xxx",0,10)
//    val rdd = spark.sparkContext.parallelize(dd.toArray.toSeq)
//    rdd.foreach(x => println(x))
  }
}

Python连接Redis

import redis

if __name__ == '__main__':
    handler = redis.Redis(host='192.168.56.100',port=6379,decode_responses=True)
    # print(handler.get("lyx"))
    df = handler.lrange("xxx",0,10)
    print(df)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值