zoukankan      html  css  js  c++  java
  • [Database] Redis (1)

      Redis 是一个高性能的key-value内存数据库。 这不仅性能强劲,而且还具有复制、持久化、分片特性。 它支持存储的value类型包括STRING(字符串)、LIST(链表)、SET(集合)、HASH(散列)、ZSET(有序集合)等。redis还支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。Redis 提供了Python,Ruby,Erlang,PHP客户端,使用很方便。

    我们用 Python 来联接操作试试

    Python联接代码

    代码
    abeen@localhost:~/mytest$ cat my_redis.py
    #! /usr/bin/env python
    #
    _*_ coding:utf-8 _*_

    import redis

    # Redis 操作调用
    class My_Redis:

    # 初始化配置信息
    def__init__(self):
    self.r
    = redis.Redis(host='192.168.1.3', port=6379, db=0)

    def GetInstance(self):
    return self.r

    def Set(self, object_name, object):
    self.r.set(object_name, object)

    def Get(self, object_name):
    return self.r.get(object_name)

    导入

    In [1]: ls
    my_redis.py
    * my_redis.pyc mytest.py*
    In [
    2]: from my_redis import My_Redis
    In [
    3]: r = My_Redis().GetInstance()

    字符串操作

    代码
    In [4]: r.set('strName','shan shan') //保存字符串
    Out[
    4]: True
    In [
    5]: r.get('strName') //取字符串
    Out[
    5]: 'shan shan'

    In [
    7]: r.exists('strName') //检查是否存在
    Out[
    7]: True

    In [
    8]: r.type('strName') //查看类型
    Out[
    8]: 'string'

    In [
    9]: r.keys() //查看所有keys
    Out[
    9]:['book', 'list', 'set1', 'id', 'list2', 'o', '', 'name', 'a', 'kv', 'b', 's', 'c', 'shanshan', 'strName']

    In [
    10]: r.rename('strName','strNewName')//修改键名
    Out[
    10]: True
    In [
    12]: r.keys()
    Out[
    12]:['book', 'list', 'set1', 'id', 'list2', 'o', '', 'name', 'a', 'kv', 'b', 's', 'c', 'strNewName', 'shanshan']
    In [
    13]: r.get('strNewName')
    Out[
    13]: 'shan shan'

    In [
    14]: r.dbsize()//总键数
    Out[
    14]: 15

    In [
    15]: r.set('abeen','yeah my am abeen')
    Out[
    15]: True
    In [
    16]: r.mget(['strNewName','abeen']) //一次取多个键值
    Out[
    16]: ['shan shan', 'yeah my am abeen']

    In [
    17]: r.getset('abeen','abeen new message')//替换值
    Out[
    17]: 'yeah my am abeen'
    In [
    18]: r.get('abeen')
    Out[
    18]: 'abeen new message'

    列表操作

    代码
    In [5]: r.lpush('listAB','shan shan') //加入值
    Out[
    5]: True
    In [
    6]: r.lpush('listAB','shan shan')
    Out[
    6]: True
    In [
    7]: r.lpush('listAB','shan shan')
    Out[
    7]: True
    In [
    11]: r.lrange('listAB', 0, r.llen('listAB'))//显示
    Out[
    11]: ['shan shan', 'shan shan', 'shan shan']

    In [
    12]: r.lset('listAB', 0, 'abeen') //修改0索引值
    Out[
    12]: True
    In [
    13]: r.lset('listAB',1, 'qiqi')//修改1索引值
    Out[
    13]: True
    In [
    14]: r.lrange('listAB', 0, r.llen('listAB'))
    Out[
    14]: ['abeen', 'qiqi', 'shan shan']

    In [
    15]: r.rpush('listAB','abeen1') //头部插入值
    Out[
    15]: True
    In [
    16]: r.lrange('listAB', 0, r.llen('listAB'))
    Out[
    16]: ['abeen', 'qiqi', 'shan shan', 'abeen1']
    In [
    17]: r.lpush('listAB','abeen2') //尾部插入值
    Out[
    17]: True
    In [
    18]: r.lrange('listAB', 0, r.llen('listAB'))
    Out[
    18]: ['abeen2', 'abeen', 'qiqi', 'shan shan', 'abeen1']

    In [
    19]: r.ltrim('listAB',0,1) //消减值
    Out[
    19]: True
    In [
    20]: r.lrange('listAB', 0, r.llen('listAB'))
    Out[
    20]: ['abeen2', 'abeen']

    In [
    22]: r.lpop('listAB') //尾部移除值
    Out[
    22]: 'abeen2'
    In [
    23]: r.lrange('listAB', 0, r.llen('listAB'))
    Out[
    23]: ['abeen']

    --------------------------------------------------------

    更多相关操作和信息请参考

    Redis

    http://code.google.com/p/redis/wiki/CommandReference

    API Reference

    redis-cheatsheet-v1.pdf

  • 相关阅读:
    POJ 2923 Relocation (状态压缩,01背包)
    HDU 2126 Buy the souvenirs (01背包,输出方案数)
    hdu 2639 Bone Collector II (01背包,求第k优解)
    UVA 562 Dividing coins (01背包)
    POJ 3437 Tree Grafting
    Light OJ 1095 Arrange the Numbers(容斥)
    BZOJ 1560 火星藏宝图(DP)
    POJ 3675 Telescope
    POJ 2986 A Triangle and a Circle
    BZOJ 1040 骑士
  • 原文地址:https://www.cnblogs.com/abeen/p/1773087.html
Copyright © 2011-2022 走看看