12-Redis数据库

2019-02-17  本文已影响4人  努力爬行中的蜗牛
nosql介绍

**NoSQL:一类新出现的数据库(not only sql),他的特点:

NoSQL和SQL数据库的比较

Redis简介
Redis特性
Redis优势
Redis应用场景
Redis下载与安装
  1. 下载
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
  1. 解压
tar -zxvf redis-5.0.3.tar.gz
  1. 复制,放到/usr/local/local目录下
sudo mv ./redis-5.0.3 /usr/local/redis
  1. 进入redis目录
cd /usr/local/redis/
  1. 生成
sudo make
  1. 测试,这段运行时间会较长
sudo make test

测试问题

1.wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz  
2.sudo tar xzvf tcl8.6.1-src.tar.gz  -C /usr/local/  
3.cd  /usr/local/tcl8.6.1/unix/  
4.sudo ./configure  
5.sudo make  
6.sudo make install 
  1. 安装,将redis的命令安装到/usr/bin/目录
sudo make install
  1. 安装完成后,进入目录/usr/bin中查看
cd /usr/bin
ls -all
  1. 配置文件,移动到/etc目录下
  2. 配置文件目录为/usr/local/redis/redis.conf
sudo cp /usr/local/redis/redis.conf /etc/redis/
配置
sudo vim /etc/redis/redis.conf
核心配置选项
bind 127.0.0.1
port 6379
daemonize yes
dbfilename dump.rdb
dir /var/lib/redis
logfile /var/log/redis/redis-server.log
database 16
slaveof
Redis服务器端和客户端的命令

服务器端

redis-server --help
sudo service redis start
sudo service redis stop
sudo service redis restart
ps -ef | grep redis  # 查看Redis服务器进进程
sudo kill -9 pid # 杀死redis服务器
sudo redis-service /etc/redis/redis.conf  # 指定加载的配置文件

客户端

redis-cli --help
redis-cli
ping
select n
Redis存储数据结构

数据结构

string类型

保存
如果设置的键不存在则为添加,如果设置的键已经存在则修改

set key value
例如:
set name itcat
setex key seconds value
例如:
setex aa 3 aa
mset key1 value key2 value2...
例如:
mset a1 python a2 java a3 c
append key value
例如:
append a1 'haha'

获取

get key
例如:
get name
mget key1 key2
例如:
mget a1 a2 a3

键命令

keys pattern
例如:
keys *
keys 'a*'
exists key
例如:
exists a1
type key
例如:
type a1
del key1 key2...
例如:
del a1 a2
expire key seconds
例如:
expire a1 10
ttl key
例如
ttl a1

hash类型

增加、修改

hset key field value
例如:
hset user name itheima
hmset key field value1 field2 value2...
例如:
hmset u2 name itcast age 11

获取

hkeys key
例如:
hkeys u2
hget key field
例如:
hget u2 name
hmget key field field2
例如:
hmget u2 name age
hvals key
例如:
hvals u2

删除

hdel key field1 field2...
例如:
hdel u2 name
list类型

增加

lpush key value1 value2...
例如:
lpush a1 a b c
rpushh key value1 value2...
例如:
rpush a1 0 1
linsert key before 或者 after 现有元素 新元素
例如:
linsert a1 before b 3

** 获取**

lrange key start stop
例如:
lrange a1 0 -1

设置指定索引位置的元素值

lset key index value
例如:
lset a 1 z

删除

lpush a2 a b a b a b
lrem a2 -2 b
lrange a2 0 -1
set类型

操作

sadd key member1 member2...
例如:
sadd a3 zhangsan lisi wangwu

获取

smembers key 
例如:
smembers a3

删除

srem key
例如:
srem a3 wangwu
zset类型

增加

zadd key score1 member1 score2 member2...
例如:
zadd a4 4 lisi 5 wangwu 6 zhaoliu 3 zhangsan
zrange key start stop
zrange a4 0 -1
zrangebyscore key min max
例如:
zrangebyscore a4 5 6
zscore key member
例如:
zscore a4 zhangsan

删除

zrem key member1 member2...
例如:
zrem a3 zhangsan
zremrangebyscore key min max
例如:
zremrangebyscore a4 5 6
redis与ptyhon交互

安装redis

StrictRedis对象方法
通过init创建对象,指定参数host,port与指定的服务器和端口连接,host默认是localhost,port默认是6379,db默认为0
sr = StrictRedis(host='localhost',port=6379,db=0)
简写
sr = StrictRedis()

from redis import StrictRedis


if __name__ == '__main__':
    try:
        sr = StrictRedis()
        # 添加一个key,为name value itheima
        res = sr.set('name','itheima')
        print(res)

        # 获取name值
        name = sr.get('name')
        print(name)

        # 珊瑚name及对应的值
        res = sr.delete('name')
        print(res)

        # 删除多个键以及其对应的值
        res = sr.delete('a1','a3')
        print(res)

        # 获取数据库中所有的键
        res = sr.keys()
        print(res)
    except Exception as e:
        print(e)

session的redis存储配置
# 设置rdis存储session信息
SESSION_ENGINE = 'redis_sessions.session'
# redis服务的ip地址
SESSION_REDIS_HOST = 'localhost'
# redis服务的端口号
SESSION_REDIS_PORT = 6379
# redis中的那个数据库
SESSION_REDIS_DB = 2
SESSION_REDIS_PASSWORD = ''
SESSION_REDIS_PREFIX = 'session'
redis主从配置

主从概念

配置主

配置从

集群

集群概念
集群是一组相互独立的,通过高速无网络互联的计算机,他们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。

redis集群

上一篇 下一篇

猜你喜欢

热点阅读